Когда вы создаете свои сценарии Bash, их функциональность такова, что вам нужно дождаться, пока какая-либо функция в нем завершит свою обработку, прежде чем продолжить. Ожидание в сценарии Bash вводится с помощью команды «sleep». Команда sleep в Bash позволяет вам ждать столько, сколько вы хотите, прежде чем выполнять какую-либо дальнейшую обработку. Эта функция находит особый случай использования при работе с клиентами и серверами в Linux.
Несколько клиентов могут подключаться к одному серверу в зависимости от его способности обрабатывать запросы в модели клиент-сервер. Клиент всегда инициирует запрос на соединение, тогда как сервер слушает этот запрос. Однако иногда сервер может быть занят обработкой других запросов. Следовательно, для клиента должен быть определен период времени, в течение которого этот клиент должен ждать, прежде чем отменять запрос на установление соединения. Это время может быть определено с помощью команды сна.
Это был простой вариант использования команды sleep с моделью клиент-сервер; однако эта команда может также служить другим целям в рамках этой модели. Наш мотив — узнать, как мы можем спать в сценарии Bash в Ubuntu 20.04. Для этого мы написали эту статью так, чтобы вы извлекли из него максимальную пользу, следуя приведенным в нем примерам.
Для сна в сценарии Bash используется команда, известная как sleep. Для вашего удобства синтаксис этой команды приведен ниже:
$ sleep duration
Здесь продолжительность означает количество секунд, минут, часов или дней, в течение которых вы хотите, чтобы ваша программа «спала». По умолчанию продолжительность сна задается в секундах, что означает, что если вы выполните команду «sleep 2», ваша программа просто будет спать в течение 2 секунд. Однако, если вы хотите, чтобы ваша программа спала в течение минут, часов или дней, вам придется использовать символы «m», «h» или «d» после продолжительности сна для указания минут, часов или дней. соответственно.
Теперь, чтобы лучше понять работу команды сна, вам нужно будет прочитать следующие примеры, которые мы специально разработали для вас, чтобы вы узнали об использовании команды сна в Bash в Ubuntu 20.04.
Первый пример — самый простой из всех, в котором мы просто хотели научить вас, как создать сценарий Bash, использующий команду сна. Пример сценария Bash показан ниже:
#!/bin/bash sleep echo "Я проспал 2 секунды"
Мы только что использовали в этом скрипте команду сна, за которой следовала продолжительность сна, которая в нашем случае была 2. Это означает, что наш скрипт будет спать в течение двух секунд, прежде чем выполнять какую-либо дальнейшую обработку. После двух секунд сна мы хотели, чтобы наш скрипт печатал случайное сообщение на терминале с помощью команды «echo».
Теперь, чтобы выполнить этот скрипт через терминал Ubuntu 20.04, мы запустим в нем следующую команду:
$ bash Sleep.sh
Sleep.sh — это имя файла, в котором написан наш сценарий Bash для этого конкретного примера.
andreyex@destr -VirtualBox: ~$ bash Sleep.sh
После выполнения этой команды наш терминал ждал 2 секунды, прежде чем отобразить сообщение, указанное в нашем скрипте, на терминале
Вы убедитесь в этом, когда создадите аналогичный сценарий Bash и запустите его в своей системе Ubuntu 20.04.
Теперь мы хотим пойти немного дальше с использованием команды сна в Bash в Ubuntu 20.04. Для этого вам следует сначала взглянуть на следующий сценарий Bash, который мы разработали:
#!/bin/bash echo "Текущее время составляет:" date +"&H: 9M: %S" sleep 2 echo "Я проспал 2 секунды" echo "Текущее время после команды sleep равно:" date +"%H:%M:%S"
В этом сценарии Bash мы сначала использовали команду date для вывода текущего системного времени в формате «часы, минуты, секунды». После этого мы использовали команду сна, чтобы перевести скрипт в спящий режим на 2 секунды. Опять же, мы использовали команду date для вывода текущего системного времени. По сути, мы хотели сравнить два разных времени, или, другими словами, мы хотели проверить, действительно ли наша команда сна переведет наш скрипт в режим сна на 2 секунды или нет.
Этот сценарий Bash можно выполнить с помощью той же команды, которую мы использовали в нашем первом примере. Мы отобразили вывод этого скрипта на изображении, показанном ниже:
andreyex@destr -VirtualBox: ~$ bash Sleep.sh Текущее время составляет: 10:12:03 Я проспал 2 секунды Текущее время после команды sleep равно: 10:12:05 andreyex@destr -VirtualBox: ~$
В этом выводе вы можете заметить разницу между двумя временами. Первый раз был 10:12:03, после чего наш скрипт Bash проспал 2 секунды. Второй тайм — 10:12:05. Оба времени отличаются ровно на 2 секунды, что означает, что наша команда сна была выполнена правильно.
Наконец, мы сейчас создадим пример сценария Bash, который будет использовать команду sleep в «цикле for». Сначала вы можете взглянуть на следующий сценарий Bash, который мы разработали для этой цели:
#!/bin/bash numbers=("1" "2" "3") len=${#numbers[*]} echo "Элементами массива чисел являются: for (( i=0; i<$len; i++ )) do echo "${numbers [$i]}" echo "Засыпаю на секунду" sleep 1 done
Этот сценарий Bash начинается с объявления массива с именем «numbers», и этому массиву были присвоены три значения, то есть 1, 2 и 3, что означает, что объявленный массив состоит из трех элементов. Затем у нас есть переменная, которой мы присвоили длину этого массива, чтобы наш «цикл for» мог легко перебирать этот массив. Затем у нас есть «цикл for», который будет иметь в общей сложности три итерации, поскольку он выполняет итерацию по длине массива «numbers», равной 3. Внутри этого «цикла for» мы хотели распечатать элементы нашего Массив «numbers» один за другим с 1 — второй паузой перед печатью следующего значения. Вот почему мы сначала использовали команду «echo», чтобы напечатать значение индекса массива, за которым следует случайное сообщение. Затем наш скрипт засыпает одну секунду, после чего будет напечатано следующее значение.
Этот сценарий будет выполнен таким же образом, как мы выполнили наши первые два примера сценариев. Результат этого сценария Bash показан ниже:
-VirtualBox: ~$ bash Sleep. sh Элементами массива чисел являются: Засыпаю на секунду Засыпаю на секунду Засыпаю на секунду -VirtualBox: ~$
Вы можете легко визуализировать из показанного выше вывода, что наш сценарий Bash спал ровно на секунду после печати каждого значения индекса нашего массива «numbers».
Эта статья началась с краткого описания команды sleep в Bash в системе Ubuntu 20.04, за которым следует ее общий синтаксис. Затем мы поделились с вами тремя разными примерами, в которых эта команда используется в сценарии Bash. Эти примеры начинались с очень простого уровня сложности и поднимались до относительно сложного уровня сложности. Однако нашей главной целью было показать вам, как использовать команду sleep в сценарии Bash в системе Ubuntu 20.04. Надеюсь, пройдя эту статью, вы сможете очень эффективно использовать команду sleep в своих сценариях Bash.