Le istruzioni If-else nello scripting bash sono simili a qualsiasi altro linguaggio di programmazione; è un metodo per un programma per prendere decisioni.
In if-else
istruzioni, l'esecuzione di un blocco di istruzioni viene decisa in base al risultato del if
condizione.
Sintassi dell'istruzione Bash If-Else
La sintassi del if-else
l'istruzione in bash è:
if [condition]
then
//if block code
else
// else block code
fi
Se la condizione restituisce true
, il if
il codice di blocco viene eseguito e se la condizione restituisce false
poi il else
il codice di blocco viene eseguito.
L'istruzione else e il blocco di codice else sono facoltativi.
Dobbiamo finire il if
dichiarazione con fi
parola chiave.
Confronti condizionali
L'espressione utilizzata dal costrutto condizionale deve restituire true
o false
. L'espressione può essere una singola stringa o variabile.
- meno di - indicato da:
$a -lt $b
o$a < $b
- maggiore di - indicato da:
$a -gt $b
o$a > $b
- minore o uguale a - indicato da:
$a -le $b
o$a <= $b
- maggiore o uguale a - indicato da:
$a -ge $b
o$a >= $b
- uguale a - indicato da:
$a -eq $b
o$a == $b
- non uguale a - indicato da:
$a -ne $b
o$a != $b
Operatori logici
L'espressione all'interno di if
può anche essere una combinazione logica di confronti multipli.
Gli operatori logici sono:
- logico e - indicato con
$a AND $b
o$a && $b
restituiscetrue
quando entrambe le variabili o le affermazioni sono vere. - logico o - indicato con
$a OR $b
o$a || $b
restituiscetrue
quando una delle variabili o affermazioni è vera.
Ad esempio:
#!/bin/bash
first_name="John"
last_name="Doe"
if [[ $first_name = "John" && $last_name = "Doe" ]]
then
echo 'hello John Doe'
fi
Bash se Esempio
Il if
istruzione è solo una semplice istruzione condizionale. Se la condizione all'interno del if[]
restituisce true
quindi il if
il blocco di codice viene eseguito.
Esempio:
#!/bin/bash
read -p "Enter a number: " mynumber
if [ $mynumber -gt 10 ]
then
echo "The number you entered is greater than 10"
fi
Nota:nell'esempio precedente, se inseriamo un numero inferiore a 10, non viene stampato nulla. Esempio di Bash if-else
Quando il risultato del if
la condizione è false
quindi il codice nel else
viene eseguito il blocco, purché ce ne sia uno.
Ad esempio:
#!/bin/bash
read -p "Enter a number: " mynumber
if [ $mynumber -gt 10 ]
then
echo "The number you entered is greater than 10"
else
echo "The number you entered is less than 10"
fi
Bash if-elif-else Esempio
Il elif
(altrimenti se) viene utilizzato quando sono presenti più if
condizioni.
Ad esempio:
#!/bin/bash
read -p "Enter your exam grade: " grade
if [ $grade -ge 80 ]
then
echo "You got A"
elif [ $grade -ge 70 ]
then
echo "You got B"
elif [ $grade -ge 60 ]
then
echo "You got C"
else
echo "Fail"
fi
Bash nidificato se Esempio
Possiamo anche avere nidificato if
dichiarazioni.
Ad esempio:
#!/bin/bash
read -p "Enter value of a :" a
read -p "Enter value of b :" b
read -p "Enter value of c :" c
if [ $a -gt $b ]
then
if [ $a -gt $c ]
then
echo "a is greatest"
else
echo "c is greatest"
fi
else
if [ $b -gt $c ]
then
echo "b is greatest"
else
echo "c is greatest"
fi
fi