Skip to main content

Come scrivere Bash WHILE-Loops

Shell Basics - Read and Write to Files - Linux Tutorial #3 (Giugno 2025)

Shell Basics - Read and Write to Files - Linux Tutorial #3 (Giugno 2025)
Anonim

È possibile eseguire una sequenza di comandi scrivendoli in un file di script e quindi eseguendoli.

Un file di script è semplicemente un file di testo, solitamente con estensione .SH, che contiene una sequenza di istruzioni che possono essere eseguite anche dalla riga di comando (shell).

Mentre esempi di loop

Di seguito è riportato un esempio di ciclo while. Quando viene eseguito, questo file di script stamperà i numeri da 1 a 9 sullo schermo. L'istruzione while offre una maggiore flessibilità per specificare la condizione di terminazione rispetto al ciclo for.

Ad esempio, puoi rendere lo script precedente un ciclo infinito omettendo l'istruzione di incremento "((count ++))":

L'istruzione "sleep 1" sospende l'esecuzione per 1 secondo a ogni iterazione. Usa la scorciatoia da tastiera Ctrl + C per terminare il processo.

Puoi anche creare un ciclo infinito inserendo i due punti come condizione:

Per utilizzare più condizioni nel ciclo while, devi usare la notazione quadrata doppia parentesi:

In questo script, la variabile "done" viene inizializzata su 0 e quindi impostata su 1 quando il conteggio raggiunge 5. La condizione del ciclo indica che il ciclo while continuerà finché "count" è minore di nove e "done" è uguale a zero. Quindi i loop escono quando il conteggio è uguale a 5.

"&&" significa logico "and" e "||" significa logico "o".

Una notazione alternativa per le congiunzioni "e" e "o" in condizioni è "-a" e "-o" con parentesi quadre singole. La condizione di cui sopra:

… potrebbe essere riscritto come:

La lettura di un file di testo viene in genere eseguita con un ciclo while. Nell'esempio seguente, lo script bash legge il contenuto riga per riga di un file chiamato "inventory.txt:"

La prima riga assegna il nome del file di input alla variabile "FILE". La seconda riga salva lo "standard input" nel descrittore di file "6" (potrebbe essere qualsiasi valore compreso tra 3 e 9). Questo è fatto in modo che "input standard" possa essere ripristinato al descrittore di file "0" alla fine dello script (vedere l'istruzione "exec 0 Nella 3a riga il file di input è assegnato al descrittore di file" 0 ", che viene usato per l'input standard. L'istruzione "read" legge quindi una riga dal file su ciascuna iterazione e la assegna alla variabile "line1".

Per uscire prematuramente da un ciclo while, puoi usare l'istruzione break in questo modo:

L'istruzione break salta l'esecuzione del programma fino alla fine while loop ed esegue qualsiasi istruzione successiva. In questo caso, la frase "echo Finished."

L'istruzione continue, d'altra parte, salta solo il resto dell'istruzione while while dell'iterazione corrente e salta direttamente alla successiva iterazione:

In questo caso, l'istruzione "continue" viene eseguita quando la variabile "count" raggiunge 5. Ciò significa che l'istruzione successiva (echo "$ count") non viene eseguita su questa iterazione (quando il valore di "count" è 5).