Где начало того конца, которым оканчивается начало? (К. Прутков).

Как использовать команду Sleep в Linux для приостановки сценария Bash

2 мин для чтения
FavoriteLoadingДобавить в избранное
1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Загрузка...
18 мая 2019
Как использовать команду Sleep в Linux для приостановки сценария Bash
Sleep – это утилита командной строки, которая позволяет приостановить вызывающий процесс на указанное время. Другими словами, команда sleep приостанавливает выполнение следующей команды на заданное количество секунд.

Команда sleep особенно полезна при использовании в сценарии оболочки bash, например, при повторной попытке сбойной операции или внутри цикла.

В этой статье мы покажем вам, как использовать команду sleep в 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

 

Ниже приведен самый простой пример использования команды 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 – это одна из самых простых команд оболочки, принимающая только один аргумент, который используется для указания интервала ожидания.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Просмотров: 7

Если статья понравилась, то поделитесь ей в социальных сетях:

Отправить ответ

Войти с помощью: 
avatar
  Подписаться  
Уведомление о

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам:

Заполните форму и наш менеджер перезвонит Вам в самое ближайшее время!

badge
Обратный звонок 1
Отправить
galka

Спасибо! Ваша заявка принята

close
galka

Спасибо! Ваша заявка принята

close