Skip to main content

Guide du débutant à BASH - Comparer des choses

231 -TOUT SAVOIR SUR LE STATIONNEMENT EN CAMPING CAR ! REGLEMENTATION ET INTERDICTION ! | FamilyRoss (Avril 2025)

231 -TOUT SAVOIR SUR LE STATIONNEMENT EN CAMPING CAR ! REGLEMENTATION ET INTERDICTION ! | FamilyRoss (Avril 2025)
Anonim
01 sur 08

Guide du débutant à BASH - Comparer des choses

Dans la partie précédente du didacticiel BASH, nous avons examiné les instructions conditionnelles.

Ce guide était très long mais ne montrait vraiment que comment contrôler le flux de la logique. Ce guide présente les différentes manières de comparer des variables.

L'image ci-dessus montre le premier exemple du guide de cette semaine:

#! / bin / bashname1 = "gary"name2 = "bob"if "$ name1" = "$ name2"puis echo "les noms correspondent"autre echo "les noms ne correspondent pas"Fi

Dans le script ci-dessus, j'ai défini deux variables nommées name1 et name2 et leur ai attribué les valeurs "gary" et "bob". Comme les variables sont contenues entre guillemets, elles sont appelées variables chaîne, ce qui devient d'autant plus pertinent que le didacticiel se poursuit.

Le script ne fait que comparer les valeurs de $ name1 et $ name2 et si elles correspondent, indiquez la chaîne "les noms correspondent" et, s'ils ne génèrent pas la chaîne "les noms ne correspondent pas".

Les guillemets autour des variables $ name1 et $ name2 sont importants car si la valeur de l’un d’eux n’a pas été définie, le script fonctionnera toujours.

Par exemple, si $ name1 n'a jamais été défini, vous compareriez "" avec "bob". Sans les guillemets, vous seriez laissé avec = "bob", ce qui échoue clairement.

Vous pouvez également utiliser la notation! = Pour définir différent de:

if "$ name1"! = "$ name2" 02 sur 08

Guide du débutant à BASH - Comparaison de chaînes

Dans l'exemple ci-dessus, le test compare les deux mêmes chaînes et pose la question suivante: est-ce que Gary vient avant Bob dans l'alphabet?

Clairement la réponse est non.

Le script introduit l'opérateur inférieur à (<). Étant donné que l'opérateur inférieur à est également utilisé pour la redirection, vous devez l'échapper avec une barre oblique () pour qu'il signifie moins que ce qui explique pourquoi, dans le script ci-dessus, j'ai comparé "$ name1" <"$ name2".

Le contraire de moins que est évidemment supérieur à. Au lieu d'utiliser <use >.

Par exemple

si "$ name1" > "$ name2" 03 de 08

Guide du débutant à BASH - Comparaison de chaînes

Si vous voulez tester si une variable a une valeur, vous pouvez utiliser le test suivant:

si -n $ name2

Dans le script ci-dessus, j'ai testé si $ name2 avait reçu une valeur et si ce n'était pas le message "Il n'y a pas de bob, il n'y a jamais eu de bob qui apparaît".

04 de 08

Guide du débutant à BASH - Comparaison de chaînes

Sur la diapositive précédente, nous avons indiqué si une variable avait été définie ou non. Parfois, une variable a peut-être été définie mais peut ne pas avoir de valeur.

Par exemple:

name1 = ""

Pour tester si une variable a une valeur ou non (c'est-à-dire une longueur de zéro), utilisez -z comme suit:

si -z $ name1

Dans le script ci-dessus, j'ai défini $ name1 sur une chaîne de longueur zéro, puis je l'ai comparé à l'aide de -z. Si $ name1 a une longueur nulle, le message "Gary est sorti pour la soirée" sera affiché.

05 de 08

Guide du débutant à BASH - Comparaison de nombres

Jusqu'ici toutes les comparaisons ont été faites pour des chaînes. Qu'en est-il de comparer des chiffres?

Le script ci-dessus montre un exemple de comparaison de deux nombres:

#! / bin / basha = 4b = 5si $ a = $ bpuis echo "4 = 5"autre echo "4 n'est pas égal à 5"Fi

Pour définir une variable comme un nombre, définissez-la simplement sans guillemets. Vous pouvez ensuite comparer les nombres avec un signe égal.

Je préfère toutefois utiliser l'opérateur suivant pour comparer deux nombres:

Si $ a -eq $ b 06 de 08

Guide du débutant à BASH - Comparaison de nombres

Si vous souhaitez comparer si un nombre est inférieur à un autre, vous pouvez utiliser l'opérateur inférieur à (<). Comme avec les chaînes, vous devez échapper à l'opérateur inférieur à avec une barre oblique. ( <).

Une meilleure façon de comparer des nombres consiste à utiliser la notation suivante:

  • Moins que -lt
  • Inférieur ou égal à -le
  • Plus grand que -gt
  • Supérieur ou égal à -ge

Par exemple:

si $ a -lt $ bsi $ a -le $ bsi $ a -ge $ bsi $ a -gt $ b 07 de 08

Guide du débutant à BASH - Comparaison de nombres

Enfin, pour ce guide, si vous souhaitez vérifier si deux nombres sont différents, vous pouvez utiliser les opérateurs inférieur et supérieur ensemble (<>) ou -ne comme suit:

si $ a <> $ bsi $ a -ne $ b 08 de 08

Guide du débutant vers BASH - Opérateurs de comparaison - Résumé

Si vous avez manqué les trois premières parties de ce guide, vous pouvez les trouver en cliquant sur les liens suivants:

  • Bonjour le monde
  • Paramètres d'entrée
  • Conditions et variables

Dans la prochaine partie du guide, je traiterai de l'arithmétique.