我有特定的 PDF 文件。我想检查每个文件 20 秒。我尝试这样做的方式如下:for file in *.pdf; do echo $file; evince $file; sleep 20s; killall evince; done
。它显示第一个文件,但 20 秒后不会将其杀死。这里出了什么问题?
答案1
请注意,您不必杀死所有实例:您可以杀死特定的实例:
for file in *.pdf; do
echo "$file"
evince "$file" &
sleep 20s
kill $!
done
$!
是最近运行的后台进程的 pid。(http://www.gnu.org/software/bash/manual/bashref.html#Special-Parameters)
答案2
我认为你只是忘了在后台运行 evince:
for file in *.pdf; do echo $file; evince $file &; sleep 20s; killall evince; done
注意&evince 命令之后的。