Запуск и уничтожение процесса 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)

Другие вопросы по тегам