Comment comparer des chaînes dans Bash

How Compare Strings Bash



À des fins de programmation différentes, nous devons comparer la valeur de deux chaînes. Les fonctions intégrées sont utilisées dans de nombreux langages de programmation pour tester l'égalité de deux chaînes. Vous pouvez vérifier l'égalité et l'inégalité de deux chaînes dans bash en utilisant si déclaration. == est utilisé pour vérifier l'égalité et ! = est utilisé pour vérifier l'inégalité des chaînes. Vous pouvez également comparer partiellement les valeurs de deux chaînes dans bash. La façon dont vous pouvez comparer les valeurs de chaîne dans bash est illustrée à l'aide de divers exemples dans ce didacticiel.

Exemple-1 : Comparaison de chaînes à l'aide des opérateurs ==

Il n'y a pas de fonction de comparaison intégrée pour vérifier l'égalité de deux valeurs de chaîne dans bash comme les autres langages de programmation standard. Dans le script suivant, deux variables de chaîne, strval1 et strval2 sont déclarés. L'équité de ces deux variables de chaîne est testée en utilisant la première si énoncé du scénario. La valeur de strval1 est comparé à une valeur de chaîne pour vérifier l'égalité dans la seconde si déclaration.







#!/bin/bash

strval1='Ubuntu'
strval2='Les fenêtres'

#Vérifier l'égalité de deux variables de chaîne

si [ $ strval1==$strval2 ];alors
chassèrent « Les cordes sont égales »
autre
chassèrent 'Les cordes ne sont pas égales'
être

#Vérifier l'égalité d'une variable avec une valeur de chaîne

si [ $ strval1=='Ubuntu' ];alors
chassèrent 'Système d'exploitation Linux'
autre
chassèrent 'Système d'exploitation Windows'
être

Sortir:



La première comparaison n'est pas égale et la deuxième comparaison est égale.







Exemple-2 : Comparaison de chaînes à l'aide de l'opérateur !=

L'inégalité de deux variables de chaîne est vérifiée dans l'exemple suivant. Ici, deux valeurs ne sont pas égales. Donc, si la condition est vraie et Système d'exploitation Windows s'imprimera.

#!/bin/bash

strval1='Ubuntu'
strval2='Les fenêtres'

#Vérifier l'inégalité d'une variable avec une valeur de chaîne

si [ $strval2 !='Ubuntu' ];alors
chassèrent 'Système d'exploitation Windows'
autre
chassèrent 'Système d'exploitation Linux'
être

Sortir:



Exemple-3 : comparaison partielle de chaînes

Vous pouvez comparer une valeur partielle en utilisant un caractère générique dans le script bash. Dans le script suivant, * est utilisé comme caractère générique pour la correspondance partielle. La variable chaîne, strval contient le mot L'Internet. Ainsi, le premier si du script renverra true et affichera Correspondance partielle . Bash est sensible à la casse. Pour cela, le deuxième si du script renverra false pour l'utilisation d'Internet comme chaîne partielle qui n'est pas égale par comparaison par lettre.

#!/bin/bash

strval='Microsoft Internet Explorer'

si [[ $ strval==*l'Internet* ]];
alors
chassèrent « Correspondance partielle »
autre
chassèrent 'Aucune concordance'
être

si [[ $ strval==*l'Internet* ]];
alors
chassèrent « Correspondance partielle »
autre
chassèrent 'Aucune concordance'
être

Sortir:

Exemple 4 : comparer la chaîne avec la valeur saisie par l'utilisateur

Parfois, nous devons comparer la valeur de chaîne prise par l'utilisateur avec une valeur de chaîne spécifique à des fins de programmation. Dans l'exemple suivant, une chaîne de données sera extraite de l'utilisateur en tant qu'entrée et comparée l'inégalité des données avec une valeur fixe. Si la condition est vraie, il imprimera Aucun Enregistrement Trouvé , sinon il s'imprimera Enregistrement trouvé .

#!/bin/bash

chassèrent 'Entrez votre nom'
liresaisir

si [ $entrée !='Fahmida' ];
alors
chassèrent 'Aucun Enregistrement Trouvé'
autre
chassèrent 'Enregistrement trouvé'
être

Sortir:

La vidéo de cette leçon est ici :

La tâche de comparaison de chaînes dans bash vous sera plus facile après avoir terminé les exemples ci-dessus avec une compréhension claire.