Как приостановить сценарий Bash с помощью команды Linux Sleep

Фатмавати Ахмад Заенури/Shutterstock.com

Команда sleep заставляет ваш компьютер Linux ничего не делать. Возможно, нелогично, но период бездействия иногда – то, что нужно. В этой статье показано, как эффективно использовать эту команду оболочки Bash.

Использовать sleep легко. В командной строке введите sleep , пробел, число и нажмите клавишу ВВОД.

 сон 5 

Курсор исчезнет на пять секунд, а затем вернется. Что случилось? Использование sleep в командной строке указывает Bash приостановить обработку на указанный вами срок. В нашем примере это было пять секунд.

Мы можем передавать длительности sleep в днях, часах и минутах, а также в секундах. Для этого включите суффикс d, h, m, или s с продолжительностью. Чтобы приостановить сон на один день, четыре часа, семь минут и пять секунд, используйте команду, подобную этой:

 сон 1д 4ч 7м 5с 

Суффикс s (для секунд) является необязательным. Без суффикса sleep будет рассматривать любую длительность в секундах. Предположим, вы хотели сделать паузу sleep на пять минут и двадцать секунд. Один правильный формат этой команды:

 спать 5м 20 

Если вы забудете указать суффикс m для продолжительности минут, вы дадите sleep паузу на пять секунд, а затем снова на двадцать секунд. Так что sleep приостановится на 25 секунд.

Многие команды требуют, чтобы вы предоставили параметры в определенном порядке, но sleep очень простителен. Вы можете предоставить их в любом порядке, и sleep будет иметь для них смысл. Вы также можете указать число с плавающей запятой в качестве параметра. Например, 0.5h – это правильный способ указать, что вы хотите, чтобы sleep сделал паузу на полчаса.

Все следующие (все более эксцентричные) команды сообщают sleep о приостановке на 10 секунд.

 сон 10 
 sleep 5 5s 
 Сон 1 1 1 с 1 1 1 с 1 2 
 сон 0,16667 м 

Использование сна для остановки перед командой

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

 sleep 15 && echo -en '\ 007' 

Использование Sleep для паузы между двумя командами

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

 ls -R ~/Documents && sleep 5 && cd ~ 

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

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

Чтобы продемонстрировать это, вот скрипт, который обращается к веб-сервису Google с помощью curl . Когда вы запрашиваете у веб-службы номер ISBN книги, он отвечает дампом данных JSON, касающихся этой книги. Мы можем проанализировать эти данные, передав их через утилиту jq , чтобы получить название книги. Чтобы скрипт не подвергал нагрузке веб-службу, он спит одну секунду между веб-запросами.

Создайте файл, содержащий следующий текст, и сохраните его как check_book.sh .

 #!/Bin/Баш
за книгу в "кошке $ 1"
делать
echo $ book ":"
curl -s https://www.googleapis.com/books/v1/volumes?q=isbn:$book | JQ '.items | . [] | .volumeInfo.title»
эхо ""
спать 1
сделанный
эхо "Все готово." 

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

 chmod + x check_book.sh 

Для сценария требуются утилиты curl и jq . Используйте apt-get для установки этих пакетов в вашу систему, если вы используете Ubuntu или другой дистрибутив на основе Debian. В других дистрибутивах Linux используйте инструмент управления пакетами вашего дистрибутива Linux.

 sudo apt-get install curl 
 sudo apt-get install jq 

Создайте текстовый файл, содержащий следующие цифры, и сохраните его как books.txt .

 9781565921276
9781874416685
9781565921672
9780521431088
9781491941591 

Запустите скрипт check_book.sh и передайте файл books.txt в качестве параметра.

 ./ check_book.sh books.txt 

Запросы отправляются в веб-службу Google с интервалом в одну секунду.Название книги появится вскоре после запроса каждого номера ISBN.

Это все, что нужно, чтобы спать . Внутренняя работа скрипта check_book.sh выходит за рамки этой статьи. Сценарий был выбран исключительно для иллюстрации правильного использования команды sleep . Если вы хотите узнать больше о двух основных компонентах скрипта, обратитесь к странице проекта curl и интерактивному руководству jq .

Оцените статью
TutoryBird.Ru
Добавить комментарий