Unix / Linux - Esempio di operatori booleani di shell
I seguenti operatori booleani sono supportati da Bourne Shell.
Assumi variabile a detiene 10 e variabile b detiene 20 quindi -
Operatore | Descrizione | Esempio |
---|---|---|
! | Questa è la negazione logica. Ciò inverte una condizione vera in falsa e viceversa. | [! false] è vero. |
-o | Questo è logico OR. Se uno degli operandi è vero, la condizione diventa vera. | [$ a -lt 20 -o $ b -gt 100] è vero. |
-a | Questo è logico AND. Se entrambi gli operandi sono veri, la condizione diventa vera altrimenti falsa. | [$ a -lt 20 -a $ b -gt 100] è falso. |
Esempio
Ecco un esempio che utilizza tutti gli operatori booleani:
#!/bin/sh
a=10
b=20
if [ $a != $b ]
then
echo "$a != $b : a is not equal to b"
else
echo "$a != $b: a is equal to b"
fi
if [ $a -lt 100 -a $b -gt 15 ]
then
echo "$a -lt 100 -a $b -gt 15 : returns true"
else
echo "$a -lt 100 -a $b -gt 15 : returns false"
fi
if [ $a -lt 100 -o $b -gt 100 ]
then
echo "$a -lt 100 -o $b -gt 100 : returns true"
else
echo "$a -lt 100 -o $b -gt 100 : returns false"
fi
if [ $a -lt 5 -o $b -gt 100 ]
then
echo "$a -lt 100 -o $b -gt 100 : returns true"
else
echo "$a -lt 100 -o $b -gt 100 : returns false"
fi
Lo script sopra genererà il seguente risultato:
10 != 20 : a is not equal to b
10 -lt 100 -a 20 -gt 15 : returns true
10 -lt 100 -o 20 -gt 100 : returns true
10 -lt 5 -o 20 -gt 100 : returns false
I seguenti punti devono essere considerati durante l'utilizzo degli operatori:
Devono essere presenti degli spazi tra gli operatori e le espressioni. Ad esempio, 2 + 2 non è corretto; dovrebbe essere scritto come 2 + 2.
if...then...else...fi dichiarazione è una dichiarazione decisionale che è stata spiegata nel prossimo capitolo.
unix-basic-operators.htm