У меня есть определенные PDF-файлы. Я хочу осмотреть каждого из них в течение 20 секунд. То, как я пытался это сделать, похоже на следующее: for file in *.pdf; do echo $file; evince $file; sleep 20s; killall evince; done
. Он отображает первый файл, но не убивает его после 20 секунд. Что здесь не так?
Я думаю, вы просто забыли запустить evince в фоновом режиме:
for file in *.pdf; do echo $file; evince $file &; sleep 20s; killall evince; done
Обратите внимание на & amp; kbd> после команды evince.
Обратите внимание, что вам не нужно убивать все: вы можете убить конкретный экземпляр:
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 )