/ / Kā apturēt Bash skriptu, izmantojot Linux miega komandu

Kā apturēt Bash skriptu, izmantojot Linux miega komandu

Bash apvalks uz Unity darbvirsmas koncepcijas

Miega komanda liek jūsu Linux datoram darītneko. Iespējams, ka tas ir pretrunīgi intuitīvs, bet bezdarbības periods dažreiz ir tieši tas, kas vajadzīgs. Šajā rakstā parādīts, kā efektīvi izmantot šo Bash apvalka komandu.

Izmantojot sleep ir viegli. Par komandrindas tipu sleep, atstarpi, skaitli un pēc tam nospiediet taustiņu Enter.

sleep 5

Kursors pazudīs piecas sekundes un pēc tam atgriezīsies. Kas notika? Izmantojot sleep komandrindā uzdod Bašam apturēt apstrādi uz jūsu norādīto laiku. Mūsu piemērā tās bija piecas sekundes.

Nav redzamas izejas no 5. miega komandas

Mēs varam pagarināt ilgumu sleep dienās, stundās un minūtēs, kā arī sekundēs. Lai to izdarītu, iekļaujiet sufiksu d, h, m, vai s ar ilgumu. Lai miegu pārtrauktu uz vienu dienu, četrām stundām, septiņām minūtēm un piecām sekundēm, izmantojiet šādu komandu:

sleep 1d 4h 7m 5s

Uz s piedēklis (dažām sekundēm) nav obligāts. Bez piedēkļa, sleep jebkuru ilgumu uzskatīs par sekundēm. Pieņemsim, ka jūs gribējāt sleep pauze piecas minūtes un divdesmit sekundes. Viens pareizais šīs komandas formāts ir:

sleep 5m 20

Ja esat aizmirsis sniegt m sufiksu par minūtes ilgumu, jūs norādīsit sleep pārtraukt piecas sekundes un tad atkal divdesmit sekundes. Tātad sleep tiks apturēts 25 sekundes.

Daudzas komandas pieprasa, lai jūs norādītu parametrus noteiktā secībā, bet sleep ir ļoti piedodošs. Jūs varat tos nodrošināt jebkurā secībā un sleep no viņiem būs jēga. Kā parametru var norādīt arī peldošā komata numuru. Piemēram, 0,5h ir piemērots veids, kā norādīt uz vēlmi sleep pārtraukt pusstundu.

Visas šīs (arvien ekscentriskākās) komandas stāsta sleep uz 10 sekundēm pārtraukt.

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

Miega režīma izmantošana, lai apturētu komandu pirms komandas

Uz sleep komandu var izmantot, lai dotu pauzi pirms komandas izpildes. Šī komanda apturētu 15 sekundes un pēc tam atskanētu signāls.

sleep 15 && echo -en '07'

Miega režīma izmantošana pauzei starp divām komandām

Tu vari izmantot sleep dot pauzi starp divām komandām. Šī komanda uzskaitītu failus jūsu direktorijā Dokumenti, apturētu piecas sekundes un pēc tam mainītu pašreizējo darba direktoriju uz jūsu mājas direktoriju:

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

Izeja no divām komandām, kuras atdala miegs

Miega režīma izmantošana, lai apturētu skripta izpildi

Jūs varat izmantot sleep komanda čaulas skriptos, lai apturētuskriptu precīzam laika periodam. Parasti jūs to darāt, lai kaut kādam procesam būtu pietiekami daudz laika, lai pabeigtu, pirms skripts turpina apstrādi. Varat arī to izmantot, lai novērtētu un ierobežotu skripta pieprasījumu citam resursam.

Precīzi to parādot, šeit ir skripts, kas izsauc Google tīmekļa pakalpojumu, izmantojot curl. Ja vaicājat tīmekļa pakalpojumu ar grāmatas ISBN numuru, tas atbild ar JSON datu izklāstu par šo grāmatu. Mēs varam parsēt šos datus, nododot tos caur jq lietderība grāmatas nosaukuma iegūšanai. Lai skripts neuzsvērtu tīmekļa pakalpojumu, tas vienu sekundi guļ starp tīmekļa pieprasījumiem.

Izveidojiet failu, kurā ir šāds teksts, un saglabājiet to kā 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."

Ievadiet šo komandu, lai iestatītu izpildes atļaujas un padarītu skriptu izpildāmu.

chmod +x check_book.sh

Skriptam nepieciešama curl un jq komunālie maksājumi. Izmantojiet apt-get instalēt šīs paketes savā sistēmā, ja izmantojat Ubuntu vai citu Debian balstītu izplatīšanu. Citos Linux izplatījumos tā vietā izmantojiet sava Linux izplatīšanas pakotņu pārvaldības rīku.

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

Izveidojiet teksta failu ar šādiem numuriem un saglabājiet to kā books.txt.

9781565921276
9781874416685
9781565921672
9780521431088
9781491941591

Palaist check_book.sh skriptu un caurlaide books.txt fails kā parametrs.

./check_book.sh books.txt

Čaulas skripta check_book.sh izvade

Pieprasījumi tiek iesniegti Google tīmekļa pakalpojumam ar vienas sekundes intervālu. Grāmatas nosaukums parādīsies neilgi pēc katra ISBN numura pieprasīšanas.

Tas viss ir jādara sleep. Iekšējās sistēmas darbība check_book.sh skripts ir ārpus šī raksta darbības jomas. Skripts tika izvēlēts tikai tāpēc, lai ilustrētu sleep komanda. Ja vēlaties uzzināt vairāk par diviem galvenajiem skripta komponentiem, skatiet curl projekta lapa un jq tiešsaistes rokasgrāmata.