Аналог pause в linux

Обновлено: 07.07.2024

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Favorite

Добавить в избранное

Главное меню » Операционная система Linux » Использование команды Sleep в скриптах Bash в Linux

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

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

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

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

Здесь суффикс может быть:

  • s. Это по умолчанию.
  • m. минуты.
  • h. час.
  • d. день.

Давайте посмотрим несколько примеров команды 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.

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

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

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

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

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

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

Когда-то создал ради пробы. Потом решил так и оставить.





Официальная возможность получить лицензионный софт бесплатно.
Giveaway of the Day

Это не реклама!


среда, 4 мая 2016 г.

Пауза в bash-скриптах

К моему удивлению, штатной "паузы", подобной команде pause в языке пакетных файлов DOS в bash не обнаружилось. Но это было бы не труЪ, если бы ее нельзя было придумать.

Два основных решения:

1. Не совсем пауза: будет ждать именно нажатия ENTER

read -p "Нажмите ВВОД для продолжения"

2. Ближе к древнему оригиналу:

read -n 1 -p "Нажмите любую клавишу для продолжения. "

3. Комбинированное решение:

read -n 1 -t 5 -p "Нажмите любую клавишу или подождите 5 секунд для продолжения. "

1 комментарий:

Этот комментарий был удален администратором блога.

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

Дневник TroubleMaker-а

Troublemaker Биробиджан, ЕАО, Russia Здравствуйте. Я не планировал вести дневник в его классическом смысле - как-то не грела мысль выкладывать свое личное на общее обозрение. Довольно долго это был один из многочисленных ресурсов, где я отметился,но не более того. А потом появилась информация, которой я захотел поделиться. И поделился, а дальше пошло-поехало. Популярность, раскрутка и прочие интернет-фетиши мне ни к чему, в первую и главную очередь я записываю для себя то, что может быть интересно мне. Но если это интересно и вам, читатель, то я только рад. Возможно, что-то из опубликованного сэкономит ваше время и нервы. 20150619 Просмотреть профиль

Светящаяся башня на фоне более темных высотных зданий ночью.

Photo by Andrea Leopardi on Unsplash

Что делать, когда надо запустить другую команду? Можно открыть еще одну сессию терминала, но можно обойтись и без этого. Давайте рассмотрим, как управлять фоновыми и приоритетными процессами в Linux.

Но сначала давайте разберемся, что такое фоновый и приоритетный процесс.

Примером может быть выполнение любой команды в текущей сессии.

Давайте попробуем запустить команду vmstat.

bg: перемещение задачи в фон

Предположим, вы хотите переместить в фон задание, выполнение которого уже началось (чтобы можно было делать в терминале что-то другое). Для этого надо нажать CTL + Z, а затем запустить команду bg (сокращение от background).

Давайте запустим выполнение какой-то приоритетной задачи. Например, будем записывать CPU-статистику в файл. Как видите, мы не можем ввести какую-то другую команду, поскольку эта задача выполняется в активном окне терминала (оно приоритетное).

Давайте поставим эту задачу на паузу, нажав CTL + Z, а затем выполним команду bg.

Теперь эта задача выполняется в фоне, а терминал свободен для введения новых команд.

Как сразу приступить к выполнению команды в фоне

Чтобы процесс запустился в фоне, после команды надо поставить знак &:

jobs: команда для проверки задач в текущем терминале

С помощью этой команды можно вывести все задачи, которые запущены в текущем терминале.

Если вы хотите увидеть идентификаторы самих процессов, надо использовать опцию -l:

Возможные опции, которые можно использовать с командой jobs:

kill% n: прекращение выполнения задания с идентификатором n

Для прерывания заданий используется команда kill. Чтобы указать, какое именно задание надо прекратить выполнять, используется знак %, за которым следует номер задания.

Как видите, теперь у нас только один процесс в фоне. Причем знак «+» показывает, что это последняя из запущенных задач.

fg: команда для перемещения задачи в интерактивный режим

Чтобы переместить задачу в активное окно терминала (на передний план), используется команда fg (сокращение от foreground). По умолчанию (то есть, если не указать никаких опций), на передний план переместится процесс, который был запущен последним.

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

Команда ps позволяет увидеть все процессы

Чтобы увидеть все активные процессы, используйте команду ps. При этом можно добавить следующие опции:

Выводы

Мы рассмотрели команды, которые позволяют управлять фоновыми и приоритетными процессами:

Мы также научились запускать задачи в фоне, добавив к команде знак &.

Читайте также: