Usa l'istruzione If ... else in Bash
- 
          
            Istruzione ifinBash
- 
          
            Istruzione if ... elseinBash
- 
          
            if...elif...elseIstruzione inBash
- 
          
            Istruzione ifannidata inBash
 
Le dichiarazioni condizionali sono prevalenti per il processo decisionale in quasi tutti i linguaggi di programmazione. Consentono l’esecuzione di una o più istruzioni solo se una particolare condizione è soddisfatta. if ... else è usato come una dichiarazione condizionale nella maggior parte dei linguaggi di programmazione. In Bash abbiamo anche if, if...elif...else, if ... else e annidati if come enunciati condizionali.
Istruzione if in Bash
    
Sintassi dell’istruzione if
if Test-Expression
then
  Statements
fi
Nell’esempio precedente, se Test-Expression è True, vengono eseguite le Statements. La parola chiave fi viene utilizzata per terminare l’istruzione if.
Se l’Espressione di prova non è True, nessuna delle Dichiarazioni viene eseguita.
Per rendere il nostro codice più leggibile e organizzato, possiamo usare il rientro di 4 o 2 spazi.
Esempio: istruzione if in Bash
echo -n "Enter numnber : "
read n
 
rem=$(( $n % 2 ))
 
if [ $rem -eq 0 ]
then
  echo "$n is even number"
fi
Produzione:
Enter numnber : 4
4 is even number
Accetta un numero dall’utente e fornisce l’output solo se il numero è pari.
Se il numero è pari, il resto è zero quando il numero viene diviso per due. Pertanto l’espressione di test è True in modo che venga eseguita l’istruzione echo.
Istruzione if ... else in Bash
Sintassi dell’istruzione if ... else
if Test-Expression
then
  Statements-1
else
  Statements-2
fi
In questo esempio, se Test-Expression è True, viene eseguito Statements-1; in caso contrario, viene eseguita la Statements-2. Per terminare l’istruzione if ... else, viene utilizzata la parola chiave fi.
Esempio: istruzione if...else in Bash
    
echo -n "Enter numnber : "
read n
 
rem=$(( $n % 2 ))
 
if [ $rem -eq 0 ]
then
  echo "$n is even number"
else
  echo "$n is odd number"
fi
Produzione:
Enter numnber : 5
4 is odd number
Accetta un numero dall’utente e fornisce un output a seconda che il numero di input sia esattamente divisibile per 2 o meno.
Se il numero è pari, il resto è zero quando il numero viene diviso per due; pertanto, l’espressione di test è True e l’istruzione echo "$n is even number" viene eseguita.
Se il numero è dispari, il resto è diverso da zero; quindi, l’espressione di test è False, e l’istruzione echo "$n is odd number" viene eseguita.
if...elif...else Istruzione in Bash
    
Sintassi dell’istruzione if...elif...else
if Test-Expression-1
then
  Statements-1
elif Test-Expression-2
then
  Statements-2
else
  Statements-3
fi
Se Test-Expression-1 è True, viene eseguito Statements-1. Altrimenti, se Test-Expression-2 è True, viene eseguito Statements-2.
Se nessuna delle espressioni di prova è True, viene eseguita la Statements-3.
Possiamo avere tante affermazioni elif quante ne desideriamo, e l’affermazione else è facoltativa.
Esempio: if...elif...else Istruzione in Bash
    
echo -n "Enter the value of a: "
read a
echo -n "Enter the value of b: "
read b
if [ $a -lt $b ]
then
   echo "a is less than b"
   
elif [ $a -gt $b ]
then
   echo "a is greater than b"
else
   echo "a is equal to b"
fi
Produzione:
Enter the value of a: 4
Enter the value of b: 4
a is equal to b
Accetta due numeri come input dell’utente e stampa il risultato in base a quale delle espressioni di test è vera.
Se a<b, il programma stampa a is less than b.
Se a>b, il programma stampa a is greater then b.
Se nessuna delle affermazioni condizionali è vera, il programma stampa a is equal to b.
Istruzione if annidata in Bash
Quando un’istruzione if è posta all’interno di un’altra istruzione if, viene chiamata un’istruzione if annidata.
echo -n "Enter numnber : "
read a
 
rem=$(( $a % 2 ))
 
if [ $rem -eq 0 ]
then
  if [ $a -gt 10 ]
  then
    echo "$a is even number and greater than 10."
	
  else
    echo "$a is even number and less than 10."
  fi
else
  echo "$a is odd number"
fi
Produzione:
Enter numnber : 46
46 is even number and greater than 10.
Dimostra l’uso dell’istruzione if annidata. Se il numero è esattamente divisibile per 2 e maggiore di 10, viene eseguita l’istruzione echo "$a is even number and greater than 10.".
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn