Usa l'istruzione If ... else in Bash
-
Istruzione
if
inBash
-
Istruzione
if ... else
inBash
-
if...elif...else
Istruzione inBash
-
Istruzione
if
annidata 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