Unix / Linux - Esempio di operatori di stringa di shell
I seguenti operatori di stringa sono supportati da Bourne Shell.
Assumi variabile a contiene "abc" e variabile b tiene "efg" quindi -
Operatore | Descrizione | Esempio |
---|---|---|
= | Controlla se il valore di due operandi è uguale o meno; se sì, la condizione diventa vera. | [$ a = $ b] non è vero. |
!= | Controlla se il valore di due operandi è uguale o meno; se i valori non sono uguali, la condizione diventa vera. | [$ a! = $ b] è vero. |
-z | Controlla se la dimensione dell'operando stringa data è zero; se è di lunghezza zero, restituisce vero. | [-z $ a] non è vero. |
-n | Controlla se la dimensione dell'operando stringa data è diversa da zero; se è una lunghezza diversa da zero, restituisce true. | [-n $ a] non è falso. |
str | Controlla se strnon è la stringa vuota; se è vuoto, restituisce false. | [$ a] non è falso. |
Esempio
Ecco un esempio che utilizza tutti gli operatori di stringa:
#!/bin/sh
a="abc"
b="efg"
if [ $a = $b ]
then
echo "$a = $b : a is equal to b"
else
echo "$a = $b: a is not equal to b"
fi
if [ $a != $b ]
then
echo "$a != $b : a is not equal to b"
else
echo "$a != $b: a is equal to b"
fi
if [ -z $a ]
then
echo "-z $a : string length is zero"
else
echo "-z $a : string length is not zero"
fi
if [ -n $a ]
then
echo "-n $a : string length is not zero"
else
echo "-n $a : string length is zero"
fi
if [ $a ]
then
echo "$a : string is not empty"
else
echo "$a : string is empty"
fi
Lo script sopra genererà il seguente risultato:
abc = efg: a is not equal to b
abc != efg : a is not equal to b
-z abc : string length is not zero
-n abc : string length is not zero
abc : string is not empty
I seguenti punti devono essere considerati durante l'utilizzo dell'operatore:
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