Как приостановить сценарий Bash с помощью команды сна в Linux

Команда сна заставляет ваш компьютер Linux ничего не делать. Возможно, это нелогично, но период бездействия иногда как раз то, что нужно. В этой статье показано, как эффективно использовать эту команду оболочки Bash.

Использовать сон легко. В командной строке введите спящий режим, пробел, число и нажмите Enter.

sleep 5

Курсор исчезнет на пять секунд, а затем вернется. Что случилось? Использование сна в командной строке указывает Bash приостановить обработку на указанное вами время. В нашем примере это было пять секунд.

Нет видимого вывода от команды сна 5

Мы можем передавать продолжительность сна в днях, часах и минутах, а также в секундах. Для этого добавьте суффикс d, h, m или s к продолжительности. Чтобы приостановить сон на один день, четыре часа, семь минут и пять секунд, используйте следующую команду:

sleep 1d 4h 7m 5s

Суффикс s (для секунд) необязателен. Без суффикса сон будет рассматривать любую продолжительность как секунды. Предположим, вы хотите сделать паузу во сне на пять минут и двадцать секунд. Один из правильных форматов этой команды:

sleep 5m 20

Если вы забудете указать суффикс m для минутной продолжительности, вы дадите команду sleep сделать паузу на пять секунд, а затем снова на двадцать секунд. Таким образом, сон будет приостановлен на 25 секунд.

  6 отличных музыкальных плееров для Linux

Многие команды требуют, чтобы вы указали параметры в определенном порядке, но сон очень щадящий. Вы можете размещать их в любом порядке, и сон будет иметь в них смысл. Вы также можете указать число с плавающей запятой в качестве параметра. Например, 0,5 часа — допустимый способ указать, что вы хотите, чтобы сон был приостановлен на полчаса.

Все следующие (все более эксцентричные) команды предписывают сну остановиться на 10 секунд.

sleep 10
sleep 5 5s
Sleep 1 1 1s 1 1 1s 1 2
sleep 0.16667m

Использование сна для паузы перед командой

Команду сна можно использовать для паузы перед выполнением команды. Эта команда приостанавливается на 15 секунд, а затем подает звуковой сигнал.

sleep 15 && echo -en '