1

我有一个有趣的情况,我正在尝试编写脚本。我有一个程序在成功启动 10 秒后输出 26,000 行。否则我必须杀死它并重新启动它。我试着做这样的事情:

test $(./long_program | wc -l) -eq 26000 && echo "Started successfully"

但这仅在程序完成运行时才有效。有没有一种聪明的方法来观察命令的输出流并做出相应的决定?我很茫然,甚至不确定如何开始搜索这个。谢谢!

4

2 回答 2

4

关于什么

./long_program > mylogfile &
pid=$!
sleep 10

# then test on mylogfile length and kill $pid if needed
于 2012-08-18T08:18:59.603 回答
0
count=0
until [ $count -eq 26000 ]; do
    killall ./longrun
    #start in background
    ./longrun >output.$$ &
    sleep 10
    count=$(wc -l output.$$ |awk '{print $1}')   
done
echo "done"
#disown so it continues after current login quits
disown -h
于 2012-08-18T08:26:32.160 回答