Usa while Loop in Bash

Suraj Joshi 12 aprile 2021
  1. Sintassi: cicli while in Bash
  2. Esempio: cicli while in Bash
  3. Esempio: bucle infinito while in Bash
  4. Esempio: cicli while in Bash con istruzione break
  5. Esempio: while bucle in Bash con istruzione continue
Usa while Loop in Bash

Il cicli while è una delle strutture di bucle più utilizzate in quasi tutti i linguaggi di programmazione. Viene utilizzato quando non sappiamo quante volte è necessario eseguire un bucle. Possiamo specificare una condizione per il bucle while e le istruzioni nel bucle vengono eseguite finché la condizione non diventa falsa.

Sintassi: cicli while in Bash

while [condition]
do
   command-1
   command-2
     ...
     ...
   command-n
done

Qui, la condition rappresenta la condizione che deve essere controllata ogni volta prima di eseguire comandi nel bucle. Se la condition è vera, eseguiamo le istruzioni nel bucle. Se la condition è falsa, usciamo dal bucle. Le istruzioni da command-1 a command-n sono istruzioni eseguite in un bucle fino a quando la condition diventa falsa.

Esempio: cicli while in Bash

#!/bin/bash

num=5

while [ $num -ge 0 ]
do
  echo $num
  ((num--))
done

Produzione:

5
4
3
2
1
0

Qui, inizialmente, num è impostato a 5. Continuiamo a stampare num nel terminale e decrementare num di 1 in un bucle finché il valore num è maggiore o uguale a 0.

Esempio: bucle infinito while in Bash

#!/bin/bash

while true
do
  echo "This is an infinite while loop. Press CTRL + C to exit out of the loop."
  sleep 0.5
done

Produzione:

This is an infinite while loop. Press CTRL + C to exit out of the loop.
This is an infinite while loop. Press CTRL + C to exit out of the loop.
This is an infinite while loop. Press CTRL + C to exit out of the loop.
^C

È un bucle while infinito che stampa This is an infinite while loop. Press CTRL + C to exit out of the loop. ogni 0,5 secondi. Per uscire dal bucle, possiamo premere CTRL+C.

Esempio: cicli while in Bash con istruzione break

#!/bin/bash

num=5

while [ $num -ge 0 ]
do
  echo $num
  ((num--))
  if [[ "$num" == '3' ]]; then
    echo "Exit out of loop due to break"
    break
  fi
done

Produzione:

5
4
Exit out of loop due to break

Nel programma precedente, num è inizializzato come 5. Il bucle viene eseguito finché num è maggiore o uguale a 0. Ma poiché abbiamo un’istruzione break nel bucle quando num è 3. Quindi, usciamo dal bucle quando il valore di num diventa 3.

Esempio: while bucle in Bash con istruzione continue

#!/bin/bash

num=6

while [ $num -ge 1 ]
do
  ((num--))
  if [[ "$num" == '3' ]]; then
    echo "Ignore a step due to continue"
    continue
  fi
  echo $num
  
done

Produzione:

5
4
Ignore a step due to continue
2
1
0

Nel programma precedente, num è inizializzato come 6. Nel bucle, prima diminuiamo num di 1 e poi stampiamo l’ultimo valore num. Il bucle viene eseguito fintanto che il valore num è maggiore o uguale a 1. Quando num diventa 3, lo script non stampa il valore di num poiché abbiamo l’istruzione continue quando num è 3.

Autore: Suraj Joshi
Suraj Joshi avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn