При написании shell-скрипта может возникнуть необходимость создать в нем паузу в несколько секунд перед выполнением очередного шага. Например, чтобы скрипт «подождал», пока завершится какой-то процесс, или сделал паузу перед повторной попыткой выполнить неудавшуюся команду.
Для этого существует очень простая команда sleep
.
Как используется команда sleep в bash
Sleep — универсальная команда с простым синтаксисом. Все, что нужно сделать, это набрать sleep N
. Это поставит ваш скрипт на паузу на N
секунд. Секунды можно указывать в целых положительных числах или в числах с плавающей запятой.
Рассмотрим базовый пример:
echo "Hello there!" sleep 2 echo "Oops! I fell asleep for a couple seconds!"
Результат работы этого скрипта выглядит так:
Аналогично можно использовать число с плавающей запятой: это позволит указать доли секунды. Например, sleep .8
приостановит работу скрипта на 0,8 с.
Вот и все, что можно сказать о работе команды sleep на базовом уровне!
Что нужно иметь в виду, используя команду sleep
По умолчанию время для sleep указывается в секундах, поэтому в примере мы не указывали единицы измерения времени.
На некоторых типах машин (конкретно — BSD и MacOS) время вообще указывается исключительно в секундах. В других Unix-подобных операционных системах скорее всего будут поддерживаться и другие единицы времени:
- s: секунды
- m: минуты
- h: часы
- d: дни
С командой sleep также можно использовать больше одного аргумента. Если вы укажете два или больше чисел, задержка будет соответствовать их сумме.
Например, указав sleep 2m 30s
, вы создадите паузу на 2,5 минуты. Имейте в виду, что в MacOS или BSD для такого результата нужно написать sleep 150
, поскольку в этих ОС время указывается только в секундах, а 2,5 мин = 150 с.
Итоги
Команда sleep — удобный способ добавить паузу в ваш bash-скрипт. В сочетании с другими командами sleep может помочь запускать операции в правильном порядке, делать паузы между попытками соединения с сайтами и т. п. В общем, этот инструмент точно стоит добавить в свой набор!
Перевод статьи «Bash Sleep – How to Make a Shell Script Wait N Seconds (Example Command)».
[customscript]techrocks_custom_after_post_html[/customscript]
[customscript]techrocks_custom_script[/customscript]
спасибо!!!