循环启动和终止 evince 进程

循环启动和终止 evince 进程

我有特定的 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 命令之后的。

相关内容