特定の 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 に答える