GNU/Linux >> Linux Esercitazione >  >> Linux

Il ciclo while negli script della shell

Oggi impareremo a conoscere il ciclo while negli script di shell. I loop sono una parte essenziale di qualsiasi linguaggio di programmazione. Quando scriviamo un codice per eseguire una serie di istruzioni 15 volte, scrivere la stessa istruzione più e più volte sarebbe improduttivo.

I loop fanno risparmiare tempo al programmatore.

Uno dei loop più comunemente usati in qualsiasi linguaggio di programmazione è il ciclo while. Usiamo il ciclo while negli script di shell per ripetere un insieme di istruzioni fintanto che una determinata condizione è soddisfatta dopo ogni iterazione.

Come funziona un ciclo while negli script della shell?

Il ciclo while negli script di shell ti aiuta a rendere efficiente il tuo codice riducendo la quantità di codice che devi scrivere.

È utile quando devi fare qualcosa nel tuo script più e più volte. Cerchiamo di capire il funzionamento di un ciclo while negli script di shell attraverso la sua sintassi:

while [ condition ] 
do 
    statement 1
    statement 2
done

Qui abbiamo tre parole chiave, vale a dire mentre , fai e fatto .

  • La prima parola chiave 'while' indica l'inizio del ciclo quando eseguiamo lo script della shell.
  • È seguito da una condizione racchiusa tra parentesi tonde.
  • La parola chiave 'do' viene utilizzata prima delle istruzioni da eseguire nel ciclo.
  • Ogni ciclo while consiste in una condizione seguita da una serie di comandi.
  • Quindi incontriamo la parola chiave done che segna la fine del ciclo.

Pensa a do and done come parentesi di apertura e chiusura in altri linguaggi di programmazione

In primo luogo, viene valutata la condizione. Se la condizione è TRUE, le istruzioni che seguono do sarà eseguito. Questo si ripete finché non c'è un punto in cui la condizione restituisce FALSE.

Una volta che la condizione è falsa, il ciclo verrà terminato.

La cosa importante da tenere a mente è che, come la programmazione C, lo scripting della shell fa distinzione tra maiuscole e minuscole. Quindi, devi stare attento quando usi le parole chiave nel tuo codice.

Se sei interessato a conoscere le affermazioni condizionali, fai clic qui per leggere informazioni su if-else negli script di shell.

Utilizzo del ciclo while negli script della shell

Leggere semplicemente la teoria e dare un'occhiata alla sintassi non ti gioverebbe fino a quando ea meno che tu non possa praticamente usarla nel tuo codice.

Pertanto, per una migliore comprensione del concetto e della sua applicazione pratica, controlla il seguente esempio.

Durante il ciclo per stampare i primi 5 numeri

È sempre meglio iniziare con qualcosa di semplice. Qui useremo while loop in script di shell per stampare i primi 5 numeri naturali sul nostro schermo.

Questo semplice script verrà eseguito in loop mentre il valore per la variabile 'a' è minore di ('-lt') il 5. La condizione vale per i numeri da 1 a 4, quindi il comando verrà eseguito per lo stesso.

Per qualsiasi numero maggiore o uguale a 5, la condizione è falsa. Quindi, il ciclo verrà terminato. Ecco come verrà scritto il codice.

#!/bin/sh
a=1
while [ $a -lt 5 ]
do
    echo $a
    ((a++))
done

Trovare il fattoriale utilizzando il ciclo while negli script della shell

Uno degli esempi più pratici sarebbe l'utilizzo della funzionalità di un ciclo while per completare un'attività. Troviamo il fattoriale di un numero.

Il codice seguente mostra come eseguire questa attività utilizzando il ciclo while.

#!/bin/sh
counter=5
factorial=1
while [ $counter -gt 0 ]
do 
      factorial=$(( $factorial * $counter ))
      ((counter--))
done 
echo $factorial

Come puoi vedere, il fattoriale per il ciclo while viene stampato correttamente come 120.

Lettura di un file negli script della shell utilizzando il ciclo while

Quando abbiamo a che fare con file di testo, while loop risulta essere uno strumento importante in quanto possiamo fare in modo che il loop legga l'intero file usando while read comando.

Questo comando può aiutarci a leggere il contenuto di un file dalla riga di comando. Il codice seguente utilizza questa funzionalità del ciclo while nello script della shell per leggere il contenuto di un file una riga alla volta, quindi stamparlo sullo schermo dell'utente.

#!/bin/bash
FILE=$1
while read line
do
    # use $line variable to process line
    echo $line
done < $FILE

Come puoi vedere, ho passato il nome del file come argomento perché nel nostro script di shell abbiamo usato $ 1 e lo abbiamo assegnato alla variabile FILE. Ciò significa che il primo argomento verrà accettato come nome del file e lo script procederà alla lettura del file.

Inoltre, utilizziamo l'operatore di reindirizzamento dell'input all'interno dello script dopo che è stato eseguito, in modo da poter utilizzare il nome del file direttamente come argomento durante l'esecuzione dello script.

Se salti quella parte, il tuo comando avrà un aspetto simile a:

bash file.sh < filename.txt

Quindi vedi, reindirizza l'input all'interno dello script o durante l'esecuzione dello script. I risultati sono gli stessi.

Conclusione

Il ciclo while negli script di shell è un'arma chiave nell'arsenale di ogni programmatore di shell. È lo strumento migliore da utilizzare quando è necessario eseguire una serie di istruzioni ripetute in base a una condizione.

Automatizzando l'esecuzione di istruzioni specifiche non solo è necessario scrivere meno codice, ma anche liberare tempo che può essere utilizzato in attività più importanti come il debug.

Ci auguriamo che questo tutorial sia stato in grado di aiutarti a capire come utilizzare la funzione di ciclo While. Se hai domande, feedback o suggerimenti, non esitare a contattarci nei commenti qui sotto.


Linux
  1. Preso nel giro? Awk While, Do While, For Loop, Break, Continue, Exit Esempi

  2. Tieniti aggiornato - Bash For, While, Until Esempi di loop

  3. Ambito variabile per gli script e le funzioni della shell bash nello script

  4. Come posso eseguire il loop sull'output di un comando di shell?

  5. Shell Script while loop:[intorno a una pipeline manca `]'

Bash mentre Loop

Che cos'è la shell in Linux?

Come creare script di shell

Array negli script di shell

Come utilizzare if-else negli script della shell?

Comprendere il ciclo for negli script della shell