
Estou tentando correr
WID=`xdotool search "Inbox" | head -1`
xdotool windowactivate $WID
xdotool key Up
cada vez que stdout de
$ CAMEL_DEBUG=all evolution
produz "iniciando ocioso".
Eu criei esse script, que faz o que eu quero, mas apenas uma vez, não faz isso toda vez que "iniciando ocioso" é mostrado, mas apenas uma vez e para. Não sei se o bash é bom o suficiente para forçá-lo a se repetir indefinidamente.
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.
Responder1
O break
comando encerra o while
loop. Largue.
Responder2
Você poderia tentar algo um pouco mais complexo. Primeiro redirecione a saída evolution
para um arquivo:
CAMEL_DEBUG=all evolution > tmpout
Em seguida, faça um loop infinito while
que lê o arquivo e reage 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