GNU/Linux >> Tutoriels Linux >  >> Linux

Comment comparer des chaînes dans les scripts shell bash

Le traitement des chaînes fait partie de tout langage de programmation. Les scripts shell bash ne sont pas différents. Même la syntaxe est à peu près la même.

Dans ce rapide tutoriel, je vais vous montrer comment comparer des chaînes dans des scripts shell Bash.

Comparaison de chaînes bash

Voici comment comparer les chaînes dans Bash.

if [ "$string1" == "$string2" ]

Vous pouvez également utiliser une chaîne directement au lieu d'utiliser une variable.

if [ "$string1" == "This is my string" ]

Laissez-moi vous le montrer avec des exemples appropriés.

Vérifier si deux chaînes sont égales

Si vous voulez vérifier si deux chaînes sont égales, voici un exemple :

#!/bin/bash
string1="MyString"
string2="MyString"
if [ "$string1" == "$string2" ]
then
    echo "Equal Strings"
else
    echo "Strings not equal"
fi

Astuce :faites attention aux espaces

Il doit y avoir un espace entre le [ et le nom de la variable et l'opérateur d'égalité ==. Si vous manquez l'un des espaces ici, vous verrez une erreur comme "opérateur unaire attendu" ou "]".

Vérifier si les chaînes ne sont pas égales dans Bash

Au lieu de vérifier la qualité, faisons le contraire et vérifions l'inégalité. Bash fournit également l'opérateur de négation afin que vous puissiez facilement utiliser la condition "si différent" dans les scripts shell.

if [ "$string1" != "Not MyString" ]

L'exemple complet ressemble à ceci :

#!/bin/bash
string1="MyString"

if [ "$string1" != "Not MyString" ]
then
    echo "Not Equal Strings"
else
    echo "Strings equal"
fi

Vérifier si la chaîne est nulle ou vide dans Bash

Contrairement à d'autres langages comme C++, dans Bash, vous pouvez vérifier si la chaîne est nulle ou vide avec une seule commande :

if [ -z "$VAR" ]

Le -z vérifie en fait si la longueur de la variable est nulle ou non. Si la variable n'est pas définie ou si elle est vide (égale à ""), la longueur sera nulle et donc la condition retournera vraie.

Un exemple complet peut être vu ici :

#!/bin/bash
string1=
string2=""
if [ -z "$string1" ]
then
    echo "Null Strings"
fi
if [ -z "$string2"]
then
    echo "Empty String"
fi

Remarque sur l'utilisation du crochet simple "[]" et du crochet double "[[]]" dans les scripts bash

Vous pouvez également utiliser l'instruction if avec des doubles crochets comme ceci :

if [[ "$string1" == "My String" ]]

La parenthèse unique est l'ancienne convention Posix et elle présente quelques défauts. Si vous n'utilisez pas les guillemets doubles autour des variables et que la variable n'est pas définie, elle disparaîtra du code et cela entraînera une erreur de syntaxe.

if [ $string1 == "My String" ]

Si la variable $string1 est vide ou n'est pas définie dans le code ci-dessus, cette ligne deviendra équivalente à

if [  == "$string2" ]

Conclusion

J'espère que ce petit tutoriel rapide vous a aidé à comparer les chaînes dans les scripts shell bash. Je recommande également de lire un autre tutoriel rapide sur la commande bash sleep.

Si vous avez des questions ou des suggestions, n'hésitez pas à laisser un commentaire ci-dessous.


Linux
  1. Comment comparer des nombres et des chaînes dans le script shell Linux

  2. Comment évaluer les chaînes en tant que nombres dans Bash

  3. Comment concaténer des chaînes dans Bash

  4. Comment :Historique Bash/shell illimité ?

  5. Comment grep une section d'un fichier dans bash shell

Comment utiliser la commande de date dans les scripts bash sous Linux

Shell Scripting pour les débutants - Comment écrire des scripts Bash sous Linux

Comment utiliser la commande Declare dans Linux Bash Shell

Comment installer Linux Bash Shell sur Windows 10

Comment vérifier si un fichier ou un répertoire existe dans Bash Shell

Bash Scripting :comment générer et formater du texte sur le shell Linux