Come mettere in pausa uno script bash con il comando di sospensione di Linux

Contenuti

Bash shell nel concetto desktop di Unity

Il comando di sospensione fa in modo che il tuo computer Linux non faccia nulla. Forse è controintuitivo, ma ogni tanto ci vuole un periodo di inattività. Questo post mostra come utilizzare efficacemente questo comando della shell bash.

Usando sleep È facile. Nel tipo da riga di comando sleep, Uno spazio, un numero e poi premere Invio.

dormire 5

Il cursore scomparirà per cinque secondi e poi ritornerà. Cosa è successo? Usando sleep sulla riga di comando dici a Bash di sospendere l'elaborazione per il tempo che hai fornito. Nel nostro esempio, erano cinque secondi.

Nessun output visibile dal comando di sospensione 5

Possiamo spostare le durate in sleep in giorni, ore e minuti, così come in pochi secondi. Per fare questo, includere un suffisso di d, h, m, oh s con la durata. Per far fermare il sogno per un giorno, quattro ore, sette minuti e cinque secondi, usa un comando come questo:

dormire 1g 4h 7m 5s

il s suffisso (per secondi) è facoltativo. Nessun suffisso sleep tratterà qualsiasi durata come secondi. Supponi di voler avere sleep pausa di cinque minuti e venti secondi. Un formato corretto per questo comando è:

dormire 5m 20

Se dimentichi di fornire il m suffisso in minuto estensione, insegnerà sleep mettere in pausa per cinque secondi e poi di nuovo per venti secondi. Quindi sleep si fermerà per 25 secondi.

Molti comandi richiedono di fornire i parametri in un ordine specifico, ma sleep è molto indulgente. Puoi fornirli in qualsiasi ordine e sleep gli darà un senso. Inoltre puoi fornire un numero in virgola mobile come parametro. Come esempio, 0,5 h è un modo valido per indicare che vuoi sleep prenditi una mezz'oretta di pausa.

Tutti i seguenti comandi (sempre più eccentrico) dicono sleep fare una pausa da 10 secondi.

dormire 10
dormire 5 5S
Dormire 1 1 1S 1 1 1S 1 2
dormire 0,16667 m

Utilizzo della sospensione per mettere in pausa prima di un comando

il sleep Utilizzo della sospensione per mettere in pausa prima di un comando. Utilizzo della sospensione per mettere in pausa prima di un comando 15 Utilizzo della sospensione per mettere in pausa prima di un comando.

dormire 15 && echo -en '07'

Utilizzo della sospensione per mettere in pausa prima di un comando

Puoi usare sleep Utilizzo della sospensione per mettere in pausa prima di un comando. Utilizzo della sospensione per mettere in pausa prima di un comando, Utilizzo della sospensione per mettere in pausa prima di un comando:

ls -R ~/Documenti && dormire 5 && cd ~

Uscita di due comandi separati per il sonno

Utilizzo della sospensione per mettere in pausa l'esecuzione dello script

Puoi usare il sleep comando negli script di shell per mettere in pausa l'esecuzione dello script per un periodo di tempo preciso. Regolarmente, Lo farei per consentire ad alcune procedure di avere abbastanza tempo per essere completate prima che lo script continui la sua elaborazione. Puoi anche usarlo per limitare le richieste che uno script fa a un'altra risorsa.

Per dimostrare esattamente questo, Utilizzo della sospensione per mettere in pausa prima di un comando curl. Utilizzo della sospensione per mettere in pausa prima di un comando ISBN numero di un libro, Utilizzo della sospensione per mettere in pausa prima di un comando. Utilizzo della sospensione per mettere in pausa prima di un comando jq utility per recuperare il titolo del libro. In modo che lo script non sottolinei il servizio web, dormire per un secondo tra le richieste web.

Crea un file contenente il seguente testo e salvalo come check_book.sh.

#!/bin/bash

for book in `cat $1`
do
 echo $book":"
 ricciolo -s https://www.googleapis.com/books/v1/volumes?q=isbn:$prenotare | jq '.elementi | .[] | .volumeInfo.title'
 echo ""
 dormire 1
done

echo "Tutto fatto."

Digitare il comando seguente per determinare le autorizzazioni di esecuzione e rendere eseguibile lo script.

chmod +x check_book.sh

Lo script ha bisogno del curl e jq servizi di pubblica utilità. Utilizzo apt-get per installare questi pacchetti sul tuo sistema se stai usando Ubuntu o un'altra distribuzione basata su Debian. Su altre distribuzioni Linux, usa lo strumento di gestione dei pacchetti della tua distribuzione Linux.

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

Crea un file di testo contenente i seguenti numeri e salvalo come books.txt.

9781565921276
9781874416685
9781565921672
9780521431088
9781491941591

Corri il check_book.sh script e passare il books.txt file come parametro.

./check_book.sh libri.txt

Le richieste vengono effettuate al servizio web di Google a intervalli di un secondo. Il titolo del libro apparirà poco dopo aver consultato ciascun numero ISBN.

Questo è tutto quello che c'è da fare sleep. Il funzionamento interno del check_book.sh script vanno oltre lo scopo di questo post. La sceneggiatura è stata scelta unicamente per illustrare un valido uso del sleep comando. Se vuoi saperne di più sui due componenti principali dello script, vedere il curl pagina del progetto e il jq Manuale in linea.

Iscriviti alla nostra Newsletter

Non ti invieremo posta SPAM. Lo odiamo quanto te.