Со bash
встроенными вы можете сделать:
coproc read -t 10 && wait "$!" || true
Спать 10 секунд без использования sleep
. Нужно coproc
сделать так, чтобы read
stdin - это труба, из которой ничего не выйдет. || true
это потому чтоwait
с тем, что состояние выхода будет отражать доставку SIGALRM, что приведет к выходу оболочки, если эта errexit
опция установлена.
В других оболочках:
mksh
и ksh93
естьsleep
встроенный, нет смысла использовать что-либо еще там (хотя они оба также поддерживают read -t
).
zsh
также поддерживает read -t
, но также имеет встроенную оболочку вокругselect()
, так что вы также можете использовать:
zmodload zsh/zselect
zselect -t 1000 # centiseconds
Если вам нужно запланировать запуск вещей из сеанса интерактивной оболочки, см. Также zsh/sched
модуль вzsh
.
sleep
?