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.
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
Tartalomjegyzék
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.
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.
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.