Запуск и уничтожение процесса evince в цикле
У меня есть определенные PDF-файлы. Я хочу осмотреть каждого из них в течение 20 секунд. То, как я пытался это сделать, похоже на следующее: for file in *.pdf; do echo $file; evince $file; sleep 20s; killall evince; done
, Он отображает первый файл, но не убивает его после 20 секунд. Что здесь не так?
2 ответа
Решение
Я думаю, вы просто забыли запустить evince в фоновом режиме:
for file in *.pdf; do echo $file; evince $file &; sleep 20s; killall evince; done
Обратите внимание на & после команды evince.
Обратите внимание, что вам не нужно убивать все: вы можете убить конкретный экземпляр:
for file in *.pdf; do
echo "$file"
evince "$file" &
sleep 20s
kill $!
done
$!
это pid самого последнего фонового процесса. ( http://www.gnu.org/software/bash/manual/bashref.html)