Menu
Coddy logo textTech

Ciclo while

Fa parte della sezione Fondamenti del percorso Terminal di Coddy. Lezione 72 di 82.

Il ciclo for è perfetto quando sai esattamente quali elementi iterare. Ma cosa succede se vuoi continuare a eseguire il ciclo finché una determinata condizione non cambia? È qui che entra in gioco il ciclo while.

Un ciclo while continua a essere eseguito finché la sua condizione rimane vera. Ecco la struttura di base:

#!/bin/bash
count=1
while [ $count -le 5 ]; do
    echo "Count: $count"
    count=$((count + 1))
done

Questo script stampa i numeri da 1 a 5.

Il ciclo verifica se count è minore o uguale a 5. Se è vero, esegue il corpo, incrementa il contatore usando $((...)) per l’aritmetica e verifica di nuovo.

Quando count raggiunge 6, la condizione diventa falsa e il ciclo si interrompe.

I cicli while sono perfetti quando non sai in anticipo quante iterazioni ti servono. Per esempio, potresti continuare a chiedere un input finché l'utente non digita "quit":

#!/bin/bash
input=""
while [ "$input" != "quit" ]; do
    read -p "Enter command (quit to exit): " input
    echo "You entered: $input"
done

Fai attenzione ai cicli while. Se la condizione non diventa mai falsa, il ciclo continua all’infinito.

Assicurati sempre che qualcosa all'interno del ciclo finisca per modificare la condizione, ad esempio incrementando un contatore o aggiornando una variabile in base all'input dell'utente.

challenge icon

Sfida

Facile

Crea uno script shell chiamato counter.sh che usa un ciclo while per stampare i numeri da 1 a 4.

Il tuo script dovrebbe:

  1. Iniziare con la riga shebang (#!/bin/bash)
  2. Creare una variabile chiamata num con il valore iniziale 1
  3. Usare un ciclo while che continua finché num è minore o uguale a 4
  4. All'interno del ciclo, stampare il numero corrente nel formato: Number: [num]
  5. Incrementare num di 1 dopo ogni iterazione usando $((num + 1))

Rendi eseguibile lo script ed eseguilo. Il tuo output dovrebbe essere:

Number: 1
Number: 2
Number: 3
Number: 4

Suggerimento: Usa -le per il confronto "minore o uguale a". Ricordati di incrementare il contatore all'interno del ciclo con num=$((num + 1)) per evitare un ciclo infinito. Termina il ciclo while con done.

Provalo tu

Terminale
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Fondamenti

Esercitati da solo: Playground Terminal