La Logica Condizionale in Bash: `if`, `then`, `else`

Script Linux

Per scrivere script che facciano qualcosa di utile, è essenziale poter eseguire comandi diversi in base a determinate condizioni. In Bash, questo si fa con l'istruzione `if`.

La Sintassi di Base

La sintassi di `if` in Bash è un po' particolare e richiede attenzione agli spazi.

if [ condizione ]; then
    # comandi da eseguire se la condizione è vera
elif [ altra_condizione ]; then
    # comandi da eseguire se l'altra condizione è vera
else
    # comandi da eseguire se nessuna condizione è vera
fi

Punti chiave: `if` e `[` sono comandi separati, quindi devono esserci degli spazi. La condizione deve essere chiusa da `]`. La struttura termina sempre con `fi` (l'inverso di `if`).

Le Condizioni di Test `[ ]`

Le parentesi quadre `[` sono un alias per il comando `test`. All'interno si usano degli operatori per confrontare stringhe, numeri o controllare file.

Confronti tra Stringhe

  • `if [ "$VAR1" = "$VAR2" ]`: Vero se le stringhe sono uguali.
  • `if [ "$VAR1" != "$VAR2" ]`: Vero se sono diverse.
  • `if [ -z "$VAR" ]`: Vero se la stringa è vuota.
  • `if [ -n "$VAR" ]`: Vero se la stringa non è vuota.

È una buona pratica mettere sempre le variabili tra doppi apici per gestire correttamente gli spazi.

Confronti tra Numeri

  • `-eq` (equal): Uguale
  • `-ne` (not equal): Diverso
  • `-gt` (greater than): Maggiore di
  • `-ge` (greater or equal): Maggiore o uguale
  • `-lt` (less than): Minore di
  • `-le` (less or equal): Minore o uguale
NUM=10
if [ "$NUM" -gt 5 ]; then
    echo "Il numero è maggiore di 5."
fi

Controlli sui File

  • `if [ -f "/percorso/file" ]`: Vero se il file esiste ed è un file regolare.
  • `if [ -d "/percorso/dir" ]`: Vero se esiste ed è una directory.
  • `if [ -e "/percorso/qualcosa" ]`: Vero se esiste (file o directory).

Questa logica condizionale, combinata con la lettura di argomenti o l'input dell'utente, ti permette di creare script complessi e intelligenti.

Hai bisogno di una soluzione su misura?

Dalla Web App al gestionale custom, trasformiamo le tue idee in software performante. Contattaci per una consulenza gratuita.

Richiedi una consulenza