Sleep – это утилита командной строки, которая позволяет приостановить вызывающий процесс на указанное время. Другими словами, команда sleep приостанавливает выполнение следующей команды на заданное количество секунд.
Команда sleep особенно полезна при использовании в сценарии оболочки bash, например, при повторной попытке сбойной операции или внутри цикла.
В этой статье мы покажем вам, как использовать команду sleep в Linux.
Как использовать команду sleep
Синтаксис команды sleep выглядит следующим образом:
sleep NUMBER [SUFFIX]...
NUMBER – Может быть положительным целым числом или числом с плавающей точкой.
SUFFIX – Может быть одним из следующих:
- s – секунды (по умолчанию)
- m – минуты
- h – часов
- d – дни
Если суффикс не используется, по умолчанию используются секунды.
Если указано два или более аргументов, общее количество времени эквивалентно сумме их значений.
Вот несколько простых примеров, демонстрирующих использование команды sleep:
- Сон 5 секунд:
sleep 5
- Сон в течение 0,5 секунд:
sleep 0.5
- Сон в течение 2 минут и 30 секунд:
sleep 2m 30s
Примеры скриптов на Bash
Ниже приведен самый простой пример использования команды sleep в ваших скриптах Bash. Когда вы запустите скрипт, он напечатает текущее время в формате HH:MM:SS. Затем команда sleep приостановит выполнение сценария на 5 секунд. По истечении указанного периода времени последняя строка скрипта снова выведет текущее время.
#!/bin/bash # время начала date +"%H:%M:%S" # сон в течении 5 секунд sleep 5 # время окончания date +"%H:%M:%S"
Вывод будет выглядеть примерно так:
22:08:25 22:08:30
Давайте посмотрим на более сложный пример.
#!/bin/bash while : do if ping -c 1 ip_address &> /dev/null then echo "Хост находится в сети" break fi sleep 5 done
Приведенный выше сценарий будет проверять, находится ли хост в сети или нет, каждые 5 секунд, и когда хост перейдет в режим онлайн, скрипт уведомит вас и остановит.
Как работает скрипт:
- В первой строке мы создаем бесконечный цикл while.
- Затем мы используем команду ping, чтобы определить ip_address, доступен ли хост с IP-адресом или нет.
- Если хост доступен скрипт выполнит echo «Хост находится в сети» и завершает цикл.
- Если хост недоступен, команда sleep приостанавливает выполнение сценария на 5 секунд, а затем цикл начинается с начала.
Заключение
К настоящему времени вы должны хорошо понимать, как использовать команду sleep в Linux.
Команда sleep – это одна из самых простых команд оболочки, принимающая только один аргумент, который используется для указания интервала ожидания.