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

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

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

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

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

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

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

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

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

спать 5с

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

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

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

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

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

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

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

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

спать 3.5с

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

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

#! / Bin / Баш
х = 10
в то время как [$ x -gt 0]
делать
спать 1с
Чисто
эхо "$ х секунд до взрыва"
х = $ (($ х - 1))
сделанный

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


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


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


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


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


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

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

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

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

человек спать

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

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

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

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

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

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

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

$ Cd / mydirectory /  сон 3  Ls

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

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

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

Ссылка на основную публикацию