我正在努力奔跑
WID=`xdotool search "Inbox" | head -1`
xdotool windowactivate $WID
xdotool key Up
每次标准输出
$ 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