Comparez la chaîne en bash

Comparez la chaîne en bash

La nécessité de comparer les chaînes dans un script bash est relativement courante et peut être utilisée pour vérifier certaines conditions avant de passer à la partie suivante d'un script. Une chaîne peut être n'importe quelle séquence de caractères. Pour tester si deux chaînes sont les mêmes, les deux chaînes doivent contenir exactement les mêmes caractères et dans le même ordre. Ce pourrait être un mot ou une phrase entière. Par exemple, chaîne un est égal à chaîne un mais n'est pas égal à String deux. Avoir l'idée?

Dans ce guide, nous vous montrerons comment comparer les chaînes dans la coque bash sur un système Linux. Nous le montrerons dans le contexte d'un scénario si / else simple afin que vous puissiez voir comment les tests pour cette condition fonctionneraient lors du développement de scripts, mais nous montrerons également comment cette même comparaison peut être effectuée dans le terminal de la ligne de commande.

Dans ce tutoriel, vous apprendrez:

  • Comment comparer les chaînes à bash
  • Exemple si / else bash scripts qui compare les chaînes
Comparaison des cordes à bash Exigences logicielles et conventions de ligne de commande Linux
Catégorie Exigences, conventions ou version logicielle utilisée
Système Toute distribution Linux
Logiciel N / A
Autre Accès privilégié à votre système Linux en tant que racine ou via le Sudo commande.
Conventions # - Exige que les commandes Linux soient exécutées avec des privilèges racine soit directement en tant qu'utilisateur racine, soit par l'utilisation de Sudo commande
$ - Exige que les commandes Linux soient exécutées en tant qu'utilisateur non privilégié régulier

Comparez si deux chaînes sont égales

Vous pouvez ouvrir un terminal sur votre système et utiliser certains de ces exemples pour avoir une idée du fonctionnement des opérateurs de bash en ce qui concerne la comparaison des chaînes.

Vous pouvez utiliser la syntaxe suivante pour comparer deux chaînes.

$ ["pommes" = "pommes"] $ echo $? 0 

La valeur retournée de 0 signifie vrai. En d'autres termes, les cordes correspondent (comme nous pouvons clairement le voir par nous-mêmes).



Essayons un autre.

$ ["pommes" = "oranges"] $ echo $? 1 

Dans cet exemple, pommes n'est pas égal des oranges, donc une valeur de 1 (false) est retourné. Des exemples plus complexes sont mieux montrés dans le contexte des scripts bash, que nous couvrons dans la section suivante.

Exemple de scripts bash pour comparer les chaînes

Dans un script bash, vous stockez normalement une ou les deux de vos cordes en tant que variables avant de les comparer. Voici un exemple simple.

#!/ bin / bash string1 = "pommes" string2 = "oranges" if ["$ string1" = "$ string2"]; puis écho "Les deux chaînes sont égales."else echo" les deux chaînes ne sont pas égales." Fi
Copie

L'exécution de ce script produira la sortie suivante.

Les deux cordes ne sont pas égales. 

Mais = N'est-ce pas le seul opérateur à notre disposition. Nous pourrions également tester pour voir si deux cordes ne sont pas égales avec le != opérateur.

#!/ bin / bash string1 = "pommes" string2 = "oranges" si ["$ string1" != "$ string2"]; Puis écho "Les chaînes sont différentes.Les cordes "else echo" ne sont pas différentes." Fi
Copie

L'exécution de ce script produira la sortie suivante.

Les cordes sont différentes. 

Il y a aussi -z pour tester si la longueur de la chaîne est 0, et -n pour tester si la longueur de la chaîne est non nulle.

#!/ bin / bash string = "" if [[-z $ string]]; puis écho "La chaîne est vide."else echo" La chaîne n'est pas vide." Fi
Copie

L'exécution de ce script produira la sortie suivante.

La chaîne est vide. 

Et le même script avec -n et une chaîne non nulle à la place:



#!/ bin / bash String = "Hello" if [[-n $ string]]; puis écho "La chaîne n'est pas vide."else echo" La chaîne est vide." Fi
Copie

L'exécution de ce script produira la sortie suivante.

La chaîne n'est pas vide. 

Conclusion

Dans ce guide, nous avons vu comment comparer les chaînes dans Bash, à la fois à la ligne de commande et dans les scripts If / Else Bash. Cette fonctionnalité peut, bien sûr, être étendue à des scripts plus robustes qui lisent les entrées des utilisateurs ou utilisent l'opérateur de cas, etc.

Ce sont toutes les méthodes de comparaison dont vous devriez avoir besoin pour comparer les chaînes à bash. Il existe encore plus lors de la comparaison des nombres, comme le -LT (moins que) et -GT (supérieurs à) des opérateurs. Mais nous couvrons cela plus en détail dans notre guide de script bash.

Tutoriels Linux connexes:

  • Bash Script: Exemples de comparaison des chaînes
  • Vim Editor Basics in Linux
  • Une introduction à l'automatisation Linux, des outils et des techniques
  • Masterring Bash Script Loops
  • Variables de bash spéciaux avec des exemples
  • Système linux hung? Comment s'échapper vers la ligne de commande et…
  • Boucles imbriquées dans les scripts bash
  • Mint 20: Mieux que Ubuntu et Microsoft Windows?
  • Choses à installer sur Ubuntu 20.04
  • Choses à faire après l'installation d'Ubuntu 20.04 Focal Fossa Linux