/ / Как да поставите на пауза Bash Script с командата за заспиване на Linux

Как да поставите на пауза Bash Script с командата за заспиване на Linux

Bash черупка на концепцията за десктоп на Unity

Командата за заспиване кара вашия компютър с LinuxНищо. Контраинтуитивен може би, но период на бездействие понякога е точно това, което е необходимо. Тази статия ви показва как да използвате ефективно тази команда Bash shell.

Използвайки sleep лесно е. От типа на командния ред sleep, интервал, число и след това натиснете Enter.

sleep 5

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

Няма видим изход от команда заспиване 5

Можем да предадем продължителността на sleep в дни, часове и минути, както и за секунди. За да направите това, включвате наставка от двете d, h, m, или s с продължителността. За да накарате съня да прави пауза за един ден, четири часа, седем минути и пет секунди, използвайте команда като тази:

sleep 1d 4h 7m 5s

Най- s суфикс (за секунди) е по желание. Без суфикс, sleep ще третира всяка продължителност като секунди. Да предположим, че сте искали да имате sleep пауза за пет минути и двадесет секунди. Един правилен формат на тази команда е:

sleep 5m 20

Ако забравите да предоставите m наставката за продължителността на минутите, ще инструктирате sleep да направите пауза за пет секунди и след това отново за двадесет секунди. Така sleep ще направи пауза за 25 секунди.

Много команди изискват да предоставите параметри в определен ред, но sleep много прощава. Можете да ги предоставите във всеки ред и sleep ще има смисъл от тях. Можете също да предоставите номер на плаваща запетая като параметър. Например 0,5h е валиден начин да посочите, че желаете sleep да направите пауза за половин час.

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

sleep 10
sleep 5 5s
Sleep 1 1 1s 1 1 1s 1 2
sleep 0.16667m

Използване на сън за пауза преди команда

Най- sleep командата може да се използва за задаване на пауза преди изпълнението на команда. Тази команда ще направи пауза в продължение на 15 секунди и след това ще даде кратка грешка.

sleep 15 && echo -en '07'

Използване на сън за пауза между две команди

Можеш да използваш sleep за да се направи пауза между две команди. Тази команда ще изброява файловете във вашата директория „Документи“, ще прави пауза за пет секунди и след това ще промени текущата работна директория във вашата домашна директория:

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

Резултат от две команди, разделени със сън

Използване на Sleep за пауза Изпълнение на скрипт

Можете да използвате sleep команда в скриптове за черупки, за да спрете изпълнението наскриптът за точно време. Обикновено трябва да направите това, за да оставите на определен процес достатъчно време, преди скриптът да продължи обработката си. Можете също да го използвате, за да ограничите скоростта на заявките, които скриптът отправя към друг ресурс.

За да демонстрираме точно това, ето скрипт, който извиква уеб услуга на Google чрез curl, Когато попитате в уеб услугата с номера на ISBN номер на книга, тя отговаря с изхвърляне на JSON данни относно тази книга. Можем да анализираме тези данни, като ги предаваме през jq помощна програма за извличане на заглавието на книгата. Така че скриптът не натоварва уеб услугата, той спи една секунда между уеб заявките.

Създайте файл, съдържащ следния текст, и го запишете като check_book.sh.

#!/bin/bash
for book in `cat $1`
do
echo $book":"
curl -s https://www.googleapis.com/books/v1/volumes?q=isbn:$book | jq '.items | .[] | .volumeInfo.title'
echo ""
sleep 1
done
echo "All done."

Въведете следната команда, за да зададете разрешенията за изпълнение и да направите скрипта изпълним.

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

Резултат от скрипта на черупката check_book.sh

Исканията се отправят към уеб услугата на Google на интервали от една секунда. Заглавието на книгата ще се появи скоро след запитване на всеки номер ISBN.

Това е всичко, което има sleep, Вътрешната работа на check_book.sh скрипт са извън обхвата на тази статия. Сценарият е избран чисто за да илюстрира валидно използване на sleep команда. Ако искате да прочетете повече за двата основни компонента на скрипта, обърнете се към curl страница на проекта и jq онлайн ръководство.