- Использование команды Sleep в скриптах Bash в Linux
- Примеры команды Sleep в Bash
- Команда sleep без суффикса считается в секундах
- Команда Sleep с суффиксом m, h или d
- Команда sleep с комбинацией секунд, минут, часов и дня
- Бонусный совет: спать меньше секунды
- Команда сна Linux (приостановка сценария Bash)
- Как использовать команду sleep
- Примеры сценариев Bash
- Выводы
- Как спать за миллисекунду в bash или ksh
- 6 ответов
- Linux / UNIX: Bash Script Sleep or Delay a Specified Amount of Time
- Examples
- sleep Command Bash Script Example
- How can I pause my bash shell script for 5 second before continuing?
- Как использовать команду Linux Sleep для приостановки сценария Bash
- How to Use the Linux Sleep Command to Pause a Bash Script
- В этом руководстве мы покажем вам, как использовать команду Linux sleep .
- Как использовать sleep команду
- Примеры скриптов на Bash
- Вывод
Использование команды Sleep в скриптах Bash в Linux
Команда sleep в Linux – одна из самых простых команд. Как видно из названия, его единственная функция – спать. Другими словами, он вводит задержку на указанное время.
Таким образом, если вы используете команду sleep с x, то следующая команда может быть запущена только через x секунд.
Команда Sleep имеет простой синтаксис:
Здесь суффикс может быть:
Давайте посмотрим несколько примеров команды sleep.
Примеры команды Sleep в Bash
Хотя вы можете использовать его непосредственно в оболочке, команда sleep обычно используется для введения задержки в выполнение сценария bash. Мы собираемся показать использование команды sleep через примеры сценариев bash.
Команда sleep без суффикса считается в секундах
Предположим, вы хотите приостановить ваш bash-скрипт на 5 секунд, вы можете использовать режим sleep следующим образом:
В примере скрипта bash это может выглядеть так:
Если вы запустите его с помощью команды time, вы увидите, что скрипт bash на самом деле работал (немного) более 5 секунд.
Команда Sleep с суффиксом m, h или d
Вы можете указать время sleep в минутах следующим образом:
Это приостановит скрипт/оболочку на одну минуту. Если вы хотите отложить сценарий на несколько часов, вы можете сделать это с помощью опции h:
Даже если вы хотите приостановить скрипт на несколько дней, вы можете сделать это с помощью суффикса d:
Это может помочь, если вы хотите работать в разные дни или дни недели.
Команда sleep с комбинацией секунд, минут, часов и дня
Вы не обязаны использовать только один суффикс за раз. Вы можете использовать более одного суффикса, и продолжительность sleep является суммой всех суффиксов.
Например, если вы используете следующую команду:
Это заставит скрипт ждать 1 час 10 минут и 5 секунд. Обратите внимание, что суффикс s здесь по-прежнему необязателен.
Бонусный совет: спать меньше секунды
Вы могли заметить, что наименьшая единица времени в команде sleep – секунда. Но что если ваш bash-скрипт будет спать в течение миллисекунд?
Хорошо, что вы можете использовать с плавающей точкой (десятичные точки) с командой sleep.
Поэтому, если вы хотите ввести паузу в 5 миллисекунд, используйте ее следующим образом:
Вы также можете использовать десятичные точки с другими суффиксами.
Будет введена задержка в 1 час 37 минут и 30 секунд.
Мы надеемся, что вы не спали, читая эти примеры команды sleep -).
Если у вас есть вопросы или предложения, пожалуйста, не стесняйтесь спрашивать.
Источник
Команда сна Linux (приостановка сценария Bash)
sleep — это утилита командной строки, которая позволяет приостанавливать вызывающий процесс на определенное время. Другими словами, команда sleep приостанавливает выполнение следующей команды на заданное количество секунд.
Команда sleep полезна при использовании в сценарии оболочки bash, например, при повторной попытке неудачной операции или внутри цикла.
В этом руководстве мы покажем вам, как использовать команду sleep в Linux.
Как использовать команду sleep
Синтаксис команды sleep следующий:
NUMBER может быть положительным целым числом или числом с плавающей запятой.
SUFFIX может быть одним из следующих:
- s — секунды (по умолчанию)
- m — минуты
- h — часы
- d — дни
Если суффикс не указан, по умолчанию используются секунды.
Когда даны два или более аргумента, общее количество времени эквивалентно сумме их значений.
Вот несколько простых примеров, демонстрирующих, как использовать команду sleep :
Сон на 0,5 секунды:
Сон 2 минуты 30 секунд:
Примеры сценариев Bash
В этом разделе мы рассмотрим несколько основных сценариев оболочки, чтобы увидеть, как используется команда sleep .
Когда вы запустите сценарий, он напечатает текущее время в формате HH:MM:SS . Затем команда sleep приостанавливает скрипт на 5 секунд. По истечении указанного периода времени последняя строка сценария выводит текущее время.
Результат будет выглядеть примерно так:
Давайте посмотрим на более сложный пример:
Скрипт каждые 5 секунд проверяет, находится ли хост в сети или нет. Когда хост переходит в онлайн, скрипт уведомит вас и остановится.
Как работает скрипт:
- В первой строке мы создаем бесконечный while цикл .
- Затем мы используем команду ping чтобы определить, доступен ли хост с IP-адресом ip_address или нет.
- Если хост доступен, сценарий выдаст эхо «Хост в сети» и завершит цикл.
- Если хост недоступен, команда sleep приостанавливает скрипт на 5 секунд, а затем цикл начинается с начала.
Выводы
Команда sleep — одна из самых простых команд Linux. Он используется для приостановки выполнения следующей команды на заданное время.
Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.
Источник
Как спать за миллисекунду в bash или ksh
sleep — очень популярная команда, и мы можем начать сон с 1 секунды:
но какая альтернатива, если мне нужно подождать всего 0,1 секунды или от 0,1 до 1 секунды?
- примечание: на linux sleep 0.XXX работает отлично, но на солярии sleep 0.1 или sleep 0.01 — незаконный синтаксис
6 ответов
У Bash есть «загружаемый» сон, который поддерживает дробные секунды и устраняет накладные расходы внешней команды:
Недостатком является то, что загружаемые файлы могут быть не снабжены двоичным кодом bash , поэтому вам нужно будет их самостоятельно скомпилировать, как показано (хотя на Solaris это не обязательно будет так просто, как описано выше).
По состоянию на bash-4.4 (сентябрь 2016 г.) все загружаемые ресурсы теперь построены и установлены по умолчанию на поддерживающих его платформах, хотя они построены как отдельные общие, объектных файлов и без суффикса .so . Если ваш дистрибутив /ОС не сделал что-то творческое, вы должны иметь возможность сделать это:
(В man-странице подразумевается BASH_LOADABLES_PATH устанавливается автоматически, я считаю, что это не относится к официальному дистрибутиву по версии 4.4.12. Если и когда он установлен правильно, вам нужно всего лишь enable -f filename commandname по мере необходимости.)
Если это не подходит, следующая простая задача — сборка или получение sleep из GNU coreutils, что поддерживает требуемую функцию. Команда POSIX sleep минимальна, старше Реализованы только версии Solaris. Solaris 11 sleep выполняет поддержку дробных секунд.
В качестве последнего средства вы можете использовать perl (или любые другие скрипты, которые должны иметь) с предостережением, что инициализация интерпретатора может быть сопоставима с предполагаемым временем ожидания:
Документация для sleep команды от coreutils говорит:
Исторические реализации сна требуют, чтобы это число было целое число и принимает только один аргумент без суффикса. Однако сон GNU принимает произвольные числа с плавающей запятой. Видеть плавающая точка .
Следовательно, вы можете использовать sleep 0.1 , sleep 1.0e-1 и аналогичные аргументы.
Сон принимает десятичные числа, поэтому вы можете разбить его так:
Источник
Linux / UNIX: Bash Script Sleep or Delay a Specified Amount of Time
H ow do I pause for 5 seconds or 2 minutes in my bash shell script on a Linux or Unix-like systems?
You need to use the sleep command to add delay for a specified amount of time. The syntax is as follows for gnu/bash sleep command:
sleep NUMBER[SUFFIX] [donotprint]
Tutorial details | |
---|---|
Difficulty level | Easy |
Root privileges | No |
Requirements | bash |
Est. reading time | 1m |
[/donotprint] Where SUFFIX may be:
- s for seconds (the default)
- m for minutes.
- h for hours.
- d for days.
Please note that the sleep command in BSD family of operating systems (such as FreeBSD) or macOS/mac OS X does NOT take any suffix arguments (m/h/d). It only takes arguments in seconds. So syntax for sleep command for Unix like system is:
sleep NUMBER
Examples
To sleep for 5 seconds, use:
sleep 5
Want to sleep for 2 minutes, use:
sleep 2m
Halt or sleep for 3 hours, use:
sleep 3h
More examples:
The most common usage are as follows:
- No ads and tracking
- In-depth guides for developers and sysadmins at Opensourceflare✨
- Join my Patreon to support independent content creators and start reading latest guides:
- How to set up Redis sentinel cluster on Ubuntu or Debian Linux
- How To Set Up SSH Keys With YubiKey as two-factor authentication (U2F/FIDO2)
- How to set up Mariadb Galera cluster on Ubuntu or Debian Linux
- A podman tutorial for beginners – part I (run Linux containers without Docker and in daemonless mode)
- How to protect Linux against rogue USB devices using USBGuard
Join Patreon ➔
Sample outputs from last while loop:
Animated gif.01: Sleep command in action
sleep Command Bash Script Example
Here is a simple example:
In this example, create the lock directory. I’m using [/\\:.-] here to ensure that we don’t use the same name that we are using for the .o file. Also, base the name on the expected object file name, since that is what matters with a parallel build.
How can I pause my bash shell script for 5 second before continuing?
Use the read command:
read -p «text» -t 5
read -p «Waiting five secs for Cloudflare to clear cache. » -t 5
echo «Generating pdf file now . »
Sample outputs:
Waiting five secs for Cloudflare to clear cache.
Generating pdf file now .
Where,
- -p «text» : Show the text without a trailing newline before time out.
- -t N : Set time out to 5 seconds.
For more info see bash command man page here and here or read it by typing the following man command:
$ man bash
$ man sleep
$ help read
🐧 Get the latest tutorials on Linux, Open Source & DevOps via
Источник
Как использовать команду Linux Sleep для приостановки сценария Bash
How to Use the Linux Sleep Command to Pause a Bash Script
В этом руководстве мы покажем вам, как использовать команду Linux sleep .
sleep утилита командной строки, которая позволяет приостановить вызывающий процесс на указанное время Другими словами, sleep команда приостанавливает выполнение следующей команды на заданное количество секунд.
Команда sleep полезна, когда используется в сценарии оболочки bash, например, при повторной попытке сбойной операции или внутри цикла.
Как использовать sleep команду
Синтаксис sleep команды следующий:
SUFFIX Может быть одним из следующих:
- s — секунды (по умолчанию)
- m — минуты
- h — часов
- d — дни
Если суффикс не указан, по умолчанию используется значение секунд.
Когда задано два или более аргументов, общее количество времени эквивалентно сумме их значений.
Вот несколько простых примеров, демонстрирующих, как использовать sleep команду:
Спать в течение 0,5 секунд:
Сон в течение 2 минут и 30 секунд:
Примеры скриптов на Bash
В этом разделе мы рассмотрим несколько основных сценариев оболочки, чтобы увидеть, как используется sleep команда.
Когда вы запустите скрипт, он напечатает текущее время в HH:MM:SS формате. Затем sleep команда приостанавливает выполнение сценария на 5 секунд. По истечении указанного периода времени последняя строка скрипта печатает текущее время.
Вывод будет выглядеть примерно так:
Давайте посмотрим на более сложный пример:
Скрипт проверяет, находится ли хост в сети или нет, каждые 5 секунд. Когда хост выходит в сеть, скрипт уведомит вас и остановит.
Как работает скрипт:
- В первой строке мы создаем бесконечный while цикл .
- Затем мы используем ping команду, чтобы определить, ip_address доступен ли хост с IP-адресом или нет.
- Если хост доступен, сценарий отобразит «Хост подключен» и завершит цикл.
- Если хост недоступен, sleep команда приостанавливает выполнение сценария на 5 секунд, а затем цикл начинается с начала.
Вывод
Команда sleep является одной из самых простых команд Linux. Он используется для приостановки выполнения следующей команды на определенный промежуток времени.
Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.
Источник