Дайте while
циклу логическое условие, такое как:
#!/bin/bash
while true; do
do_something && wait
done
Это будет выполняться снова и снова, пока bash не получит сигнал о завершении процесса. Обычно в форме ctrl+c
.
Вы также можете использовать watch
команду для многократного запуска скрипта. Например, простые часы в вашем терминале bash watch
могут выглядеть так:
$ watch -t -n1 date +%T
-t
Опция указывает , watch
чтобы не отображать название процесса он работает. Это дает вам чистый вывод только повторяемой команды. -n1
Опция говорит смотреть повторять каждые n
секунды. В этом случае -n1
будут интервалы 1
секунды. Затем date +%T
команда показывает время во время выполнения команды. Выполнение этой команды даст вам активные часы в вашем терминале.
И тогда еще один метод, которого нет ни в одном из других ответов, - это бесконечный вызов функции.
do_something() { do_something }; do_something && wait
По сути, это то же самое, что и логический while
цикл, использующий только рекурсивные вызовы функций.
(edit) Для того, чтобы помнить о ресурсах вашей машины, я добавил && wait
так, что при каждом запуске процесса циклы будут «ждать», пока этот процесс не завершится со статусом выхода 0 до следующей итерации. Это полезно в интерактивном скрипте оболочки.