Hur du gör Paus i ett Bash-Skript Med Linux Sova Kommandot

0
347
Fatmawati Achmad Zaenuri/Shutterstock.kom

Sömn kommando gör din Linux dator att göra ingenting. Counter-intuitive kanske, men en period av inaktivitet är ibland precis vad som behövs. Denna artikel visar hur du använder denna Bash shell kommando på ett effektivt sätt.

Med hjälp av sleep är enkel. På kommandoraden skriver sömn, en plats, ett nummer och tryck sedan på Enter.

sova 5

Markören kommer att försvinna i fem sekunder och sedan tillbaka. Vad hände? Hjälp sova på kommandoraden instruerar Bash för att avbryta behandlingen under den tid som du har angett. I vårt exempel var fem sekunder.

Vi kan förmedla varaktigheterna att sova i dagar, timmar och minuter, liksom i sekunder. För att göra detta med ett suffix av antingen d, h, m eller s och längd. För att framkalla sömn för att pausa för en dag, fyra timmar, sju minuter och fem sekunder, använd ett kommando som det här:

sova 1d 4h 5s 7m

S-suffix (i sekunder) är tillval. Med ingen ändelse, sömn kommer att behandla någon varaktighet som sekunder. Antag att du vill ha sömn paus i fem minuter och tjugo sekunder. En korrekt format för kommandot är:

sleep 5m 20

Om du glömmer att ge m-suffix i minuter varaktighet, du kommer att undervisa sova för att pausa för fem sekunder och sedan igen till tjugo sekunder. Så sömnen kommer paus för 25 sekunder.

Många kommandon behöver du för att ge parametrar i en viss ordning, men sömn är mycket förlåtande. Du kan ge dem i vilken ordning som helst och sömn kommer att få ut något vettigt av dem. Du kan också ge ett flyttal som en parameter. Till exempel, 0,5 tim är ett giltigt sätt att visa att du vill sova för att pausa i en halvtimme.

Alla av följande (allt mer excentriska) kommandon berätta sova för att pausa för 10 sekunder.

sover 10
sova 5 5s
Sova 1 1 1 1 1 1 1 2
sova 0.16667 m

Med hjälp av Sömn för att Pausa Innan ett Kommando

Sömn kommando kan användas för att ge en paus innan utförandet av ett kommando. Detta kommando skulle pausa i 15 sekunder och sedan ge ett pip.

sömn 15 && echo -sv ‘07’

Med hjälp av Sömn för att Pausa Mellan Två Kommandon

Du kan använda sömn för att ge en paus mellan två kommandon. Detta kommando skulle lista filer i ditt Dokument katalog, stanna fem sekunder för att sedan ändra aktuell katalog till din hemkatalog:

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

Med hjälp av Sömn för att Pausa Genomförande av ett Skript

Du kan använda sömn kommandot i shell-skript för att pausar exekvering av skriptet för en exakt tid. Typiskt, skulle du göra detta för att ge en process tillräckligt med tid för att slutföra innan manuset fortsätter sin bearbetning. Du kan också använda det för att gradera-begränsa begär ett skript som gör att en annan resurs.

För att visa just det, här är ett skript som anropar ut till en Google web service med hjälp av curl. När du söker i web service med ISBN-numret av en bok, svarar med en dump av JSON-data om den boken. Vi kan tolka den data som passerar det genom jq verktyg för att hämta titel på boken. Så att skriptet inte stress web service, sover det för en sekund mellan web-förfrågningar.

Skapa en fil som innehåller följande text och spara det som check_book.sh.

#!/bin/bash

för att boka in `cat $1`
göra
echo $book”:”
curl -s https://www.googleapis.com/books/v1/volumes?q=isbn:$boka | jq ‘.poster | .[] | .volumeInfo.titel’
echo “”
sömn 1
gjort

echo “Allt gjort.”

Skriv följande kommando för att ställa in avrättningen behörigheter och göra skriptet körbart.

chmod +x check_book.sh

Skriptet kräver curl och jq verktyg. För att använda apt-get för att installera dessa paket på ditt system om du använder Ubuntu eller annan Debian-baserad distribution. På andra Linux-distributioner, använda din Linux-distribution är pakethanteringsverktyget istället.

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

Skapa en textfil som innehåller följande nummer, och spara den som books.txt.

9781565921276
9781874416685
9781565921672
9780521431088
9781491941591

Kör check_book.sh manus och passera i books.txt filen som en parameter.

./check_book.sh books.txt

Förfrågningar görs till Google web service på en sekund. Titeln på boken kommer att visas inom kort efter varje ISBN-nummer är efterfrågade.

Det är allt det är att sova. Det inre arbetet i check_book.sh manus är utanför ramen för denna artikel. Manuset var valt enbart för att illustrera en giltig användningen av sömn-kommandot. Om du vill läsa mer om de två viktigaste komponenterna i skriptet, se curl-projektet sida och jq on-line manual.