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

Хотите замедлить ваш скрипт BASH? Используйте команду сна

В этом руководстве показано, как использовать команду Linux sleep для приостановки сценария bash.

Сама по себе команда sleep не очень полезна, но как часть сценария может использоваться многими различными способами. Например, вы можете использовать его, чтобы приостановить выполнение сценария перед повторной попыткой выполнить команду, которая не была выполнена в первый раз.

Пример использования команды Sleep

Представьте, что у вас есть скрипт, который обрабатывает файлы, загруженные с другого сервера. Сценарий не должен начинать процесс копирования, пока все файлы не закончат загрузку. Процесс загрузки выполняется совершенно отдельным скриптом, который запускается перед вашим.

Ваш скрипт для копирования файлов может содержать цикл для проверки того, все ли файлы были загружены (он делает это, проверяя, найдены ли 50 файлов перед началом процесса копирования).

Нет смысла постоянно тестировать скрипт, так как это потребляет процессорное время. Вместо этого вы можете сделать паузу на несколько минут между каждым тестом, прежде чем пытаться снова. Команда сна идеально подходит в таких условиях.

Как использовать команду сна

Чтобы использовать команду Linux sleep, введите в окне терминала следующее:

 sleep 5s 

Приведенная выше команда заставит ваш терминал остановиться на 5 секунд, прежде чем вернуться в командную строку.

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

Вы можете указать задержку в секундах, минутах, часах или днях.

  • с – секунды
  • м – минуты
  • ч – часы
  • д – дни

Когда дело доходит до приостановки работы сценария на несколько дней, стоит рассмотреть возможность использования задания cron для запуска сценария через равные промежутки времени, а не для выполнения сценария в фоновом режиме в течение нескольких дней.

Задание cron – это команда или сценарий Linux, которые можно запланировать для запуска в установленное время или день. Они очень полезны для повторения задач в течение длительного периода времени.

Число для интервала команды сна не должно быть целым числом. Вы также можете использовать числа с плавающей запятой.

Например, совершенно нормально использовать следующий синтаксис:

 sleep 3.5s 

Пример использования команды Sleep

Следующий скрипт показывает, как использовать команду sleep для создания часов обратного отсчета для терминала:

 #!/bin/bash 
x = 10
пока [$ x -gt 0]
не спят
спят 1 с
ясно
эхо " $ x секунд до взрыва "
x = $ (($ x - 1))
готово

Как работает этот скрипт:

  1. Во-первых, этот скрипт устанавливает переменную x равной 10.

  2. Цикл while продолжает повторяться, пока значение x больше нуля.

  3. Команда sleep приостанавливает выполнение сценария на 1 секунду каждый раз вокруг цикла.

  4. Оставшаяся часть сценария очищает экран каждую итерацию, отображает сообщение «x секунд до взрыва» и вычитает 1 из значения x.

Без команды sleep скрипт будет масштабироваться и сообщения будут отображаться слишком быстро.

Как использовать Командные Команды Сна

Команда сна имеет только пару переключателей.

Переключатель – help показывает файл справки для команды sleep. Вы можете достичь того же, используя команду man следующим образом:

 человек спит 

Переключатель – версия показывает версию команды sleep, установленной в вашей системе.

Информация, возвращаемая переключателем –version, выглядит следующим образом:

  • Номер версии
  • Сведения об авторских правах
  • Лицензия
  • Авторы

Приостановка терминальных команд со сном

Еще одним хорошим использованием команды sleep является приостановка команд, которые вы вводите в окне терминала.

Если вы хотите, вы можете набрать две команды подряд, ожидая окончания первой, прежде чем набрать вторую.

Тем не менее, более быстрый подход заключается в наборе двух команд в одну строку с командой сна между ними

 $ cd/mydirectory/&& sleep 3 && ls 

Как работает эта команда:

  1. Команда cd/mydirectory/ изменит каталог.
  2. Команда sleep 3 будет ждать три секунды до завершения команды cd.
  3. Команда ls будет выполнена и отобразит все содержимое каталога.

Для простого примера, подобного этому, команда sleep экономит немного времени. Но если у вас длинный список команд, возможность набирать их все в одной строке экономит время.

Оцените статью
Solutics.ru
Добавить комментарий