Команда sleep в bash: делаем задержки в скриптах

При написании 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]

1 комментарий к “Команда sleep в bash: делаем задержки в скриптах”

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Прокрутить вверх