Dichiarazioni condizionali: Ci sono in totale 5 dichiarazioni condizionali che possono essere utilizzate nella programmazione bash
- dichiarazione if
- dichiarazione if-else
- if..elif..else..fi (Else If ladder)
- if.then..else..if..then..fi..fi..(Nested if)
- switch statement
La loro descrizione con la sintassi è la seguente:
if statement
Questo blocco elaborerà se la condizione specificata è vera.
Sintassi:
if then statementfi
if-else statement
Se la condizione specificata non è vera nella parte if allora verrà eseguita la parte else.
Sintassi
if then statement1else statement2fi
if..elif..else..fi statement (Else If ladder)
Per usare più condizioni in un blocco if-else, si usa la parola chiave elif nella shell. Se l’espressione1 è vera, allora viene eseguita la dichiarazione 1 e 2, e questo processo continua. Se nessuna delle condizioni è vera, allora elabora la parte else.
Sintassi
if then statement1 statement2 . .elif then statement3 statement4 . .else statement5fi
if..then..else..if..then..fi..fi.(Nested if)
Il blocco if-else annidato può essere usato quando una condizione è soddisfatta, poi controlla di nuovo un’altra condizione. Nella sintassi, se l’espressione1 è falsa allora elabora la parte else, e di nuovo l’espressione2 sarà controllata.
Sintassi:
if then statement1 statement2 .else if then statement3 . fifi
dichiarazione switch
caso funziona come una dichiarazione switch se il valore specificato corrisponde al modello allora eseguirà un blocco di quel particolare modello
Quando viene trovata una corrispondenza tutte le dichiarazioni associate fino al doppio punto e virgola (;;) vengono eseguite.
Un caso sarà terminato quando l’ultimo comando viene eseguito.
Se non c’è corrispondenza, lo stato di uscita del caso è zero.
Sintassi:
case in Pattern 1) Statement 1;; Pattern n) Statement n;;esac
Programmi di esempio
Esempio 1:
Implementazione dell’istruzione if
#Initializing two variables
a=10
b=20
#Check whether they are equal
if
then
echo
"a is equal to b"
fi
#Check whether they are not equal
if
then
echo
"a is not equal to b"
fi
Output
$bash -f main.sha is not equal to b
Esempio 2:
Implementazione dell’istruzione if.else
#Initializing two variables
a=20
b=20
if
then
#If they are equal then
print
this
echo
"a is equal to b"
else
#
else
print
this
echo
"a is not equal to b"
fi
Output
$bash -f main.sha is equal to b
Esempio 3:
Implementazione dell’istruzione switch
CARS=
"bmw"
#Pass the variable in string
case
"$CARS"
in
#
case
1
"mercedes"
)
echo
"Headquarters - Affalterbach, Germany"
;;
#
case
2
"audi"
)
echo
"Headquarters - Ingolstadt, Germany"
;;
#
case
3
"bmw"
)
echo
"Headquarters - Chennai, Tamil Nadu, India"
;;
esac
Output
$bash -f main.shHeadquarters - Chennai, Tamil Nadu, India.
Nota: Lo scripting Shell è un linguaggio sensibile alle maiuscole e alle minuscole, il che significa che la sintassi corretta deve essere seguita mentre si scrivono gli script.