Введение
Sleep — это утилита командной строки, которая позволяет приостановить вызывающий процесс на указанный период времени. Другими словами, команда sleep приостанавливает выполнение следующей команды на указанное количество секунд.
Команда sleep особенно полезна при использовании в сценарии оболочки bash, например, при попытке повторить неудачную операцию или в цикле.
В этом уроке мы покажем вам, как использовать команду сна в Linux.
Как использовать команду сна
Синтаксис команды 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
# start time
date +"%H:%M:%S"
# sleep for 5 seconds
sleep 5
# end time
date +"%H:%M:%S"
Вывод будет выглядеть следующим образом:
13:34:40
13:34:45
Давайте рассмотрим более продвинутый пример.
#!/bin/bash
while:
do
if ping -c 1 ip_address &> /dev/null
then
echo "Host is online"
break
fi
sleep 5
done
Приведенный выше скрипт будет проверять, находится ли хост в сети или нет, каждые 5 секунд, и когда хост находится в сети, скрипт предупредит вас и остановится.
Как работает скрипт:
- В первой строке мы создаем бесконечный цикл while.
- Таким образом, мы используем команду ping, чтобы определить, доступен ли хост с IP-адресом
ip_address
или нет. - Если хост доступен, сценарий выдаст сообщение «Хост онлайн» и завершит цикл.
- Если хост недоступен, команда sleep приостанавливает выполнение скрипта на 5 секунд, после чего цикл начинается сначала.
Вывод
К настоящему времени вы должны хорошо понимать, как использовать команду сна в Linux.
Команда sleep — одна из самых простых команд оболочки, принимающая только один аргумент, который используется для указания интервала ожидания.