Workstation online OnWorks Linux e Windows

Logo

Hosting online gratuito per workstation

<Precedenti | Contenuti | Succ.>

Espressioni stringa

Per valutare le stringhe vengono utilizzate le seguenti espressioni:


Tabella 27-2: espressioni stringa di test


L'espressione è vera se...

L'espressione è vera se...

stringa stringa non è nullo.


Immagine

-n stringa La lunghezza di stringa è maggiore di zero.


Immagine

Immagine

-z stringa La lunghezza di stringa è zero.

string1 = stringa2 stringa1 == stringa2

string1 e string2 sono uguali. È possibile utilizzare il segno di uguale singolo o doppio, ma è decisamente preferibile l'uso del segno di uguale doppio.


Immagine

Immagine

Immagine

Immagine

string1 != string2 string1 e string2 non sono uguali. string1 > string2 string1 ordina dopo string2. string1 < string2 string1 ordina prima string2.


Immagine

Avvertenza: il > e < gli operatori di espressione devono essere quotati (o preceduti da una barra rovesciata) quando utilizzati con testIn caso contrario, verranno interpretati dalla shell come operatori di reindirizzamento, con risultati potenzialmente distruttivi. Si noti inoltre che, mentre bash la documentazione afferma che l'ordine di ordinamento è conforme all'ordine di collazione delle impostazioni locali correnti, non lo è. L'ordine ASCII (POSIX) è utilizzato nelle versioni di bash fino alla versione 4.0 inclusa.


Immagine


Ecco uno script che incorpora espressioni stringa:



#! / Bin / bash


# test-string: valuta il valore di una stringa ANSWER=maybe

se [ -z "$ANSWER" ]; allora

echo "Non c'è risposta." >&2 exit 1

fi


if [ "$ANSWER" = "yes" ]; then echo "La risposta è SÌ."

elif [ "$ANSWER" = "no" ]; then echo "La risposta è NO."

elif [ "$ANSWER" = "forse" ]; then echo "La risposta è FORSE."

altro

echo "La risposta è SCONOSCIUTA."

fi

#! / Bin / bash


# test-string: valuta il valore di una stringa ANSWER=maybe

se [ -z "$ANSWER" ]; allora

echo "Non c'è risposta." >&2 exit 1

fi


if [ "$ANSWER" = "yes" ]; then echo "La risposta è SÌ."

elif [ "$ANSWER" = "no" ]; then echo "La risposta è NO."

elif [ "$ANSWER" = "forse" ]; then echo "La risposta è FORSE."

altro

echo "La risposta è SCONOSCIUTA."

fi


In questo script valutiamo la costante RISPOSTA. Per prima cosa determiniamo se la stringa è vuota. In tal caso, terminiamo lo script e impostiamo lo stato di uscita a uno. Si noti il ​​reindirizzamento applicato al comando echo. Questo reindirizza il messaggio di errore "Nessuna risposta" all'errore standard, che è la cosa corretta da fare con i messaggi di errore. Se la stringa non è vuota, valutiamo il valore della stringa per vedere se è uguale a "sì", "no" o "forse". Lo facciamo usando Elif, che è l'abbreviazione di "else if". Utilizzando Elif, siamo in grado di costruire un test logico più complesso.


Il miglior sistema operativo cloud computing su OnWorks: