Командата за заспиване кара вашия компютър с LinuxНищо. Контраинтуитивен може би, но период на бездействие понякога е точно това, което е необходимо. Тази статия ви показва как да използвате ефективно тази команда Bash shell.
Използвайки sleep
лесно е. От типа на командния ред sleep
, интервал, число и след това натиснете Enter.
sleep 5
Курсорът ще изчезне за пет секунди и след това ще се върне. Какво стана? Използвайки sleep
в командния ред инструктира Bash да спре обработката за времето, което сте предоставили. В нашия пример това беше пет секунди.
Можем да предадем продължителността на 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
Исканията се отправят към уеб услугата на Google на интервали от една секунда. Заглавието на книгата ще се появи скоро след запитване на всеки номер ISBN.
Това е всичко, което има sleep
, Вътрешната работа на check_book.sh
скрипт са извън обхвата на тази статия. Сценарият е избран чисто за да илюстрира валидно използване на sleep
команда. Ако искате да прочетете повече за двата основни компонента на скрипта, обърнете се към curl
страница на проекта и jq
онлайн ръководство.