Задержка выполнения команды linux

How to Use “sleep” Command in Linux [6 Useful Examples]

Linux programmers and system administrators prefer to write shell scripts to automate simple tasks. However, writing a robust script is not an easy task. We need to handle many corner cases, such as – retry mechanism, debugging, logging, error reporting, etc.

In addition to this, many times, we need to simulate a delay in command execution to test timeout scenarios. Similarly, we need to introduce delays in the script to implement the retry mechanism. The sleep command is a perfect solution to handle such scenarios.

In this guide, we will discuss the usage of the sleep command. As the name suggests, the sleep command is used to delay the next command execution. It causes the calling program to sleep for a specified amount of time.

sleep Command Syntax

The syntax of the sleep command is very simple, as it accepts one mandatory parameter with an optional suffix:

It is important to note that, in the above syntax, there isn’t a space between the NUMBER and SUFFIX.

1. How to Delay Linux Command Execution

By default, the sleep command waits for a number of seconds. To understand this, let’s print the current time before and after the sleep command:

For example, the following command waits for 5 seconds after printing the current time:

In this example, we have used a semicolon (;) to separate each command.

Delay Linux Command Execution

2. How to Make a Command to Wait N Minutes

Optionally, the sleep command allows us to specify the time unit using the suffixes. We can use the following suffixes with the sleep command:

  • s – to specify time units in seconds.
  • m – to specify time units in minutes.
  • h – to specify time units in hours.
  • d – to specify time units in days.
Читайте также:  Активация venv python linux

So, let’s use the ‘m’ suffix to sleep for 1 minute:

Delay Linux Command Specified Time

The important point to note that is there shouldn’t be any space between NUMBER and SUFFIX.

3. How to Make Command Sleep for X Minutes and Seconds

We can use multiple suffixes with the sleep command. In such a case, the time duration is calculated by summing up all the values.

To understand this, let’s use the following command to sleep for 1 minute and 20 seconds:

$ date '+%r'; sleep 1m 20s; date '+%r'

In the above example, we have used two different suffixes. However, we can use the same suffixes as well.

For example, we can use 2s and 3s suffixed to sleep for 5 seconds:

$ date '+%r'; sleep 2s 3s; date '+%r'

Make Linux Command Sleep for X Time

4. How to Use Floating Point Numbers With the sleep Command

Additionally, the sleep command also accepts a floating point number as input. We can use this method to sleep for less than a second.

For example, we can use the 0.5s value to sleep for a half second:

In the above output, we can see that the date command shows the same value for the seconds time unit.

In addition to this, we can use floating values with other suffixes as well. For example, we can use the 0.5m value to sleep for 30 seconds:

Use Floating Point Numbers with Sleep Command

5. How to Simulate Alarm Clock Using sleep Command

In the previous few examples, we saw how to use the sleep command to delay the next command execution. We can use this trick to simulate an alarm clock.

So, let’s use the below command to set alarm after 5 seconds:

Simulate Alarm Clock with sleep Command

The above command opens the alarm.mp3 file using the VLC media player after waiting for 5 minutes. Just like any other Linux command, we can use the ctrl+c key combination to stop the VLC media player.

In this example, we have used the VLC media player but it is possible to use any other Linux media player or sound utility to achieve the same result.

6. How to Simulate Digital Clock with sleep Command

To simulate a digital clock, we can run the sleep command in an infinite loop after every second. Let’s understand this with an example.

First, let’s write a simple shell script called digital-clock.sh with the following code:

#!/bin/bash while [ 1 ] do clear tput cup 5 30 date '+%r' sleep 1 done

In this script, we have used the tput command to place the cursor at the 5th row and 30th column.

Читайте также:  Linux русские имена файлов

Now, let’s run the script and see the result:

$ chmod +x digital-clock.sh $ ./digital-clock.sh

Simulate Digital Clock with sleep Command

Finally, we can use the ctrl+c key combination to stop the script execution.

You might also like:

In this guide, we discussed how to use the sleep command to delay the next command execution. Linux programmers can use sleep commands to write robust shell scripts.

Do you know of any other best example of the sleep command in Linux? Let us know your views in the comments below.

Источник

Использование команды Sleep в скриптах Bash в Linux

Использование команды Sleep в скриптах Bash в Linux

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

Команда sleep в Linux — одна из самых простых команд. Как видно из названия, его единственная функция — спать. Другими словами, он вводит задержку на указанное время.

Таким образом, если вы используете команду sleep с x, то следующая команда может быть запущена только через x секунд.

Команда Sleep имеет простой синтаксис:

Давайте посмотрим несколько примеров команды sleep.

Примеры команды Sleep в Bash

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

Команда sleep без суффикса считается в секундах

Предположим, вы хотите приостановить ваш bash-скрипт на 5 секунд, вы можете использовать режим sleep следующим образом:

В примере скрипта bash это может выглядеть так:

!/bin/bash echo "Sleeping for 5 seconds…" sleep 5 echo "Completed"

Если вы запустите его с помощью команды time, вы увидите, что скрипт bash на самом деле работал (немного) более 5 секунд.

time ./sleep.sh Sleeping for 5 seconds… Completed real 0m5.008s user 0m0.000s sys 0m0.007s

Команда Sleep с суффиксом m, h или d

Вы можете указать время sleep в минутах следующим образом:

Это приостановит скрипт/оболочку на одну минуту. Если вы хотите отложить сценарий на несколько часов, вы можете сделать это с помощью опции h:

Даже если вы хотите приостановить скрипт на несколько дней, вы можете сделать это с помощью суффикса d:

Это может помочь, если вы хотите работать в разные дни или дни недели.

Команда sleep с комбинацией секунд, минут, часов и дня

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

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

Это заставит скрипт ждать 1 час 10 минут и 5 секунд. Обратите внимание, что суффикс s здесь по-прежнему необязателен.

Бонусный совет: спать меньше секунды

Вы могли заметить, что наименьшая единица времени в команде sleep — секунда. Но что если ваш bash-скрипт будет спать в течение миллисекунд?

Читайте также:  What is sda sdb in linux

Хорошо, что вы можете использовать с плавающей точкой (десятичные точки) с командой sleep.

Поэтому, если вы хотите ввести паузу в 5 миллисекунд, используйте ее следующим образом:

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

Будет введена задержка в 1 час 37 минут и 30 секунд.

Мы надеемся, что вы не спали, читая эти примеры команды sleep -).

Если у вас есть вопросы или предложения, пожалуйста, не стесняйтесь спрашивать.

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

Источник

Команда sleep в bash: делаем задержки в скриптах

При написании shell-скрипта может возникнуть необходимость создать в нем паузу в несколько секунд перед выполнением очередного шага. Например, чтобы скрипт «подождал», пока завершится какой-то процесс, или сделал паузу перед повторной попыткой выполнить неудавшуюся команду.

Для этого существует очень простая команда sleep .

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

Sleep — универсальная команда с простым синтаксисом. Все, что нужно сделать, это набрать sleep N . Это поставит ваш скрипт на паузу на N секунд. Секунды можно указывать в целых положительных числах или в числах с плавающей запятой.

Рассмотрим базовый пример:

echo "Hello there!" sleep 2 echo "Oops! I fell asleep for a couple seconds!"

Результат работы этого скрипта выглядит так:

Аналогично можно использовать число с плавающей запятой: это позволит указать доли секунды. Например, sleep .8 приостановит работу скрипта на 0,8 с.

Вот и все, что можно сказать о работе команды sleep на базовом уровне!

Что нужно иметь в виду, используя команду sleep

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

На некоторых типах машин (конкретно — BSD и MacOS) время вообще указывается исключительно в секундах. В других Unix-подобных операционных системах скорее всего будут поддерживаться и другие единицы времени:

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

Например, указав sleep 2m 30s , вы создадите паузу на 2,5 минуты. Имейте в виду, что в MacOS или BSD для такого результата нужно написать sleep 150 , поскольку в этих ОС время указывается только в секундах, а 2,5 мин = 150 с.

Итоги

Команда sleep — удобный способ добавить паузу в ваш bash-скрипт. В сочетании с другими командами sleep может помочь запускать операции в правильном порядке, делать паузы между попытками соединения с сайтами и т. п. В общем, этот инструмент точно стоит добавить в свой набор!

Источник

Оцените статью
Adblock
detector