我有某些 PDF 文件。我想检查他们每个人 20 秒。我试图这样做的方式如下for file in *.pdf; do echo $file; evince $file; sleep 20s; killall evince; done
:它显示第一个文件,但在 20 秒后不会杀死它。这里出了什么问题?
问问题
157 次
2 回答
2
您需要evince
异步启动,以便开始sleep
运行:
for file in *.pdf; do
echo $file;
evince $file & sleep 20s;
killall evince;
done
更新
正如建议的那样,这更好:
for file in *.pdf; do
evince "$file" & evince_pid=$!
sleep 20s
kill $evince_pid
done
于 2013-11-05T20:33:04.997 回答
1
如果可用,请使用timeout
(GNU coreutils 的一部分):
for f in *.pdf; do
echo "$f"
timeout 20 evince "$file"
done
于 2013-11-05T20:36:41.403 回答