Stations de travail en ligne OnWorks Linux et Windows

Logo

Hébergement gratuit en ligne pour les postes de travail

<Précédent | Table des matières | Suivant>

Expressions de chaîne

Les expressions suivantes sont utilisées pour évaluer les chaînes :


Tableau 27-2 : Tester les expressions de chaîne


L'expression est vraie si...

L'expression est vraie si...

un magnifique un magnifique est non nulle.


image

-n un magnifique La longueur de un magnifique est supérieur à zéro.


image

image

-z un magnifique La longueur de un magnifique est zéro.

string1 = chaîne2 chaîne1 == chaîne2

string1 et string2 sont égaux. Des signes d'égalité simples ou doubles peuvent être utilisés, mais l'utilisation de signes d'égalité doubles est grandement préférée.


image

image

image

image

string1 != string2 string1 et les string2 ne sont pas égaux. string1 > string2 string1 trie après string2. string1 < string2 string1 trie avant string2.


image

: la > et les < les opérateurs d'expression doivent être entre guillemets (ou échappés avec une barre oblique inverse) lorsqu'ils sont utilisés avec tester. S'ils ne le sont pas, ils seront interprétés par le shell comme des opérateurs de redirection, avec des résultats potentiellement destructeurs. Notez également que tandis que le bash la documentation indique que l'ordre de tri est conforme à l'ordre de classement de la locale actuelle, ce n'est pas le cas. L'ordre ASCII (POSIX) est utilisé dans les versions de bash jusqu'à et y compris 4.0.


image


Voici un script qui intègre des expressions de chaîne :



#! / Bin / bash


# test-string : évalue la valeur d'une chaîne ANSWER=peut-être

if [ -z "$REPONSE" ]; alors

echo "Il n'y a pas de réponse." >&2 sortie 1

fi


if [ "$REPONSE" = "oui" ]; puis echo "La réponse est OUI."

elif [ "$REPONSE" = "non" ]; puis echo "La réponse est NON."

elif [ "$REPONSE" = "peut-être" ]; then echo "La réponse est PEUT-ÊTRE."

d'autre

echo "La réponse est INCONNUE."

fi

#! / Bin / bash


# test-string : évalue la valeur d'une chaîne ANSWER=peut-être

if [ -z "$REPONSE" ]; alors

echo "Il n'y a pas de réponse." >&2 sortie 1

fi


if [ "$REPONSE" = "oui" ]; puis echo "La réponse est OUI."

elif [ "$REPONSE" = "non" ]; puis echo "La réponse est NON."

elif [ "$REPONSE" = "peut-être" ]; then echo "La réponse est PEUT-ÊTRE."

d'autre

echo "La réponse est INCONNUE."

fi


Dans ce script, nous évaluons la constante RÉPONDRE. Nous déterminons d'abord si la chaîne est vide. Si c'est le cas, nous terminons le script et définissons le statut de sortie sur un. Notez la redirection appliquée à la commande echo. Cela redirige le message d'erreur « Il n'y a pas de réponse. » à l'erreur standard, ce qui est la bonne chose à faire avec les messages d'erreur. Si la chaîne n'est pas vide, nous évaluons la valeur de la chaîne pour voir si elle est égale à « oui », « non » ou « peut-être ». Nous le faisons en utilisant Elif, qui est l'abréviation de " else if ". En utilisant Elif, nous sommes capables de construire un test logique plus complexe.


Meilleur système d'exploitation Cloud Computing chez OnWorks :