
Я пытаюсь бежать.
WID=`xdotool search "Inbox" | head -1`
xdotool windowactivate $WID
xdotool key Up
каждый раз, когда stdout
$ CAMEL_DEBUG=all evolution
выдает «запуск холостого хода».
Я придумал этот скрипт, который делает то, что я хочу, но только один раз, он не делает это каждый раз, когда отображается "starting idle", а только один раз и останавливается. Я не знаю bash достаточно хорошо, чтобы заставить его повторяться бесконечно.
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<&-
Спасибо.
решение1
Команда break
завершает while
цикл. Отбросьте ее.
решение2
Вы можете попробовать что-то более сложное. Сначала перенаправьте вывод evolution
в файл:
CAMEL_DEBUG=all evolution > tmpout
Затем создайте бесконечный while
цикл, который считывает файл и реагирует, если найдена строка:
#!/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