GNU timeout , часть последних версий coreutils, делает именно то, что вы хотите.
timeout 1 feh "$output""$ext"
запускает feh
в течение одной секунды, а затем убивает его, если он не 't уже закончился.
Остальная часть этого комментария касается вашего текущего рецепта:
Рецепт, который вы используете в настоящее время, помещает feh
в фон, используя &
.amp;
после ошибки, вероятно, из-за чрезмерного усердия в кодировщике HTML (&
- это то, как вы пишете &
в HTML).
При запуске ядру каждому процессу назначается PID.$!
- это переменная оболочки для pid самого последнего фонового процесса.