O comando break
finaliza o loop while
. Solte isso.
Estou tentando executar
WID='xdotool search "Inbox" | head -1'
xdotool windowactivate $WID
xdotool key Up
cada vez que stdout
$ CAMEL_DEBUG=all evolution
produz "início inativo".
Eu criei este script, que faz o que eu quero, mas apenas uma vez, ele não está sendo feito toda vez que "iniciar inativo" é exibido, mas apenas uma vez e pára. Eu não sei bash bom o suficiente para forçá-lo a se repetir sem parar.
exec 3< <(CAMEL_DEBUG=all evolution)
while read line; do
case "$line" in
*"starting idle"*)
echo "'$line' contains staring idle"
WID='xdotool search "Inbox" | head -1'
xdotool windowactivate $WID
xdotool key Up
break
;;
*)
echo "'$line' does not contain starting idle."
;;
esac
done <&3
exec 3<&-
Obrigado.
O comando break
finaliza o loop while
. Solte isso.
Você poderia tentar algo um pouco mais complexo. Primeiro, redirecione a saída de evolution
para um arquivo:
CAMEL_DEBUG=all evolution > tmpout
Em seguida, faça um loop while
interminável que leia o arquivo e reaja se uma string for encontrada:
#!/usr/bin/env bash
while true; do
while read line; do
case "$line" in
*"starting idle"*)
echo "'$line' contains staring idle"
WID='xdotool search "Inbox" | head -1'
xdotool windowactivate $WID
xdotool key Up
break
;;
*)
echo "'$line' does not contain starting idle."
;;
esac
done < tmpout
done