Bash Script szüneteltetése a Linux Sleep Command segítségével

Az alvás parancs hatására a Linux-számítógép nem csinál semmit. Talán ellentmond az intuitívnak, de néha az inaktivitás időszaka éppen az, amire szükség van. Ez a cikk bemutatja, hogyan kell hatékonyan használni ezt a Bash shell parancsot.

Az alvás használata egyszerű. A parancssorba írja be az alvást, egy szóközt, egy számot, majd nyomja meg az Enter billentyűt.

sleep 5

A kurzor öt másodpercre eltűnik, majd visszatér. Mi történt? Az alvás parancssori használata utasítja a Bash-t, hogy függessze fel a feldolgozást az Ön által megadott időtartamra. Példánkban ez öt másodperc volt.

Az alvás időtartamát napokban, órákban és percekben, valamint másodpercekben is átadhatjuk. Ehhez adjon meg egy d, h, m vagy s utótagot az időtartammal. Az alvás szüneteltetéséhez egy napra, négy órára, hét percre és öt másodpercre, használja a következő parancsot:

sleep 1d 4h 7m 5s

Az s utótag (másodpercekre) nem kötelező. Utótag nélkül az alvás minden időtartamot másodpercként kezel. Tegyük fel, hogy alvásszünetet szeretne 5 perc és húsz másodpercre. A parancs egyik helyes formátuma:

sleep 5m 20

Ha elfelejti megadni az m utótagot a perc időtartamhoz, akkor utasítja az alvást, hogy álljon meg öt másodpercre, majd ismét húsz másodpercre. Így az alvás 25 másodpercre szünetel.

  Steam játékok streamelése Linux asztali számítógépére

Sok parancs megköveteli a paraméterek meghatározott sorrendben történő megadását, de az alvás nagyon megbocsátó. Bármilyen sorrendben megadhatja őket, és az alvásnak lesz értelme. Lebegőpontos számot is megadhat paraméterként. Például a 0,5 óra egy érvényes módja annak jelzésére, hogy fél órára szünetet szeretne aludni.

A következő (egyre excentrikusabb) parancsok mindegyike 10 másodperces szünetre utasítja az alvást.

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

Az alvó üzemmód használata szüneteltetésre a parancs előtt

Az alvás paranccsal szünetet adhatunk a parancs végrehajtása előtt. Ez a parancs 15 másodpercig szünetel, majd sípoló hangot ad.

sleep 15 && echo -en ' 07'

Az alvó üzemmód használata szüneteltetésre két parancs között

Az alvás funkcióval szünetet adhat két parancs között. Ez a parancs felsorolja a fájlokat a Dokumentumok könyvtárában, megáll öt másodpercre, majd módosítja az aktuális munkakönyvtárat a saját könyvtárára:

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

Az alvó állapot használata a parancsfájl végrehajtásának szüneteltetésére

A shell-szkriptekben az alvás parancsot használhatja a szkript végrehajtásának szüneteltetésére egy pontos időre. Általában ezt azért kell megtenni, hogy elegendő idő álljon rendelkezésre bizonyos folyamatok befejezéséhez, mielőtt a szkript folytatná a feldolgozást. Használhatja arra is, hogy korlátozza a szkript által egy másik erőforráshoz intézett kéréseket.

  A SpeedTest futtatása a Linux terminálról

Pontosan ennek demonstrálására álljon itt egy szkript, amely a curl használatával hívja meg a Google webszolgáltatását. Amikor lekérdezi a webszolgáltatást a ISBN egy könyv számát, akkor az adott könyvre vonatkozó JSON-adatok kiíratásával válaszol. Ezeket az adatokat úgy elemezhetjük, hogy átadjuk a jq segédprogramon, hogy lekérjük a könyv címét. Annak érdekében, hogy a szkript ne terhelje meg a webszolgáltatást, a webes kérések között egy másodpercet alszik.

Hozzon létre egy fájlt, amely a következő szöveget tartalmazza, és mentse check_book.sh néven.

#!/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."

Írja be a következő parancsot a végrehajtási engedélyek beállításához és a szkript futtathatóvá tételéhez.

chmod +x check_book.sh

A szkripthez szükség van a curl és a jq segédprogramokra. Az apt-get paranccsal telepítheti ezeket a csomagokat a rendszerére, ha Ubuntut vagy más Debian-alapú disztribúciót használ. Más Linux disztribúciók esetén használja inkább a Linux disztribúció csomagkezelő eszközét.

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

Hozzon létre egy szöveges fájlt, amely a következő számokat tartalmazza, és mentse el books.txt néven.

9781565921276
9781874416685
9781565921672
9780521431088
9781491941591

Futtassa a check_book.sh parancsfájlt, és adja meg a books.txt fájlt paraméterként.

./check_book.sh books.txt

A kérések egy másodperces időközönként érkeznek a Google webszolgáltatásához. A könyv címe röviddel az egyes ISBN-számok lekérdezése után jelenik meg.

  A Linux top parancs használata (és a kimenetének megértése)

Ennyit kell aludni. A check_book.sh szkript belső működése túlmutat e cikk hatókörén. A szkriptet kizárólag az alvás parancs érvényes használatának szemléltetésére választották. Ha többet szeretne olvasni a szkript két fő összetevőjéről, nézze meg a curl-t projekt oldala és a jq on-line kézikönyv.