in

Le guide du débutant sur les scripts Shell 4: Conditions et instructions If-Then

Nous avons couvert suffisamment de bases dans notre guide sur les scripts shell que vous devriez vous sentir à l’aise pour expérimenter. Dans la partie de cette semaine, nous aborderons certaines des choses les plus amusantes, comme les conditions et les déclarations «si-alors».

Quelles sont les conditions?

Dans le langage courant, nous disons que les conditions sont des exigences qui doivent être remplies pour que quelque chose se produise. Pour que mon ordinateur portable puisse se connecter à Internet, plusieurs conditions doivent être remplies, comme avoir un FAI, le modem et / ou le routeur allumé, mon ordinateur portable allumé, etc. C’est assez simple, et s’il y en a un de ces exigences ne sont pas remplies, le résultat – mon ordinateur portable se connectant à Internet – ne se produit pas.

Les conditions dans le domaine de l’informatique fonctionnent de la même manière. Nous pouvons tester si une chaîne correspond à une autre chaîne, si elle ne correspond pas à une autre chaîne, ou même si elle existe. De même, nous pouvons tester des arguments numériques pour voir si l’un est supérieur, inférieur ou égal à un autre. Pour que quelque chose se produise après que les conditions du test soient remplies, nous utilisons des instructions «si-alors». Leur format est assez simple.

si CONDITION
puis
commande1
commande2

commande
Fi

Si les déclarations

Lançons un petit script de test rapide, d’accord?

si test $ 1 -gt $ 2
puis
echo « $ 1 est supérieur à 2 $ »
Fi

Vous remarquerez que ce n’est que lorsque cette condition est vraie que le script exécutera la commande suivante. Sinon, l’instruction «if» se fermera. S’il y a des commandes après l’instruction «if», elles seront exécutées normalement. J’ai ajouté la ligne suivante à la fin de notre script ci-dessus pour illustrer cela:

echo « Ceci vient après l’instruction if »

Voici quelques autres opérateurs numériques que vous voudrez peut-être essayer:

  • -eq: égal à
  • -ne: différent de
  • -lt: moins de
  • -le: inférieur ou égal à
  • -gt: supérieur à
  • -ge: supérieur ou égal à

Test des chaînes

Maintenant, si nous modifions la première ligne de notre script comme suit:

si test 1 $ = 2 $

alors la condition testera si les deux sont égaux. Il y a un hic ici cependant !! L’utilisation d’un signe égal (=) compare deux chaînes et non des nombres. Si vous souhaitez comparer des nombres, vous devez utiliser l’opérateur « -eq » de la même manière que nous avons utilisé « -gt » ci-dessus.

Maintenant, faisons une autre modification:

si test $ 1! = 2 $

L’inclusion du point d’exclamation (!) Agit comme un modificateur «non». Autrement dit, il n’exécute la commande suivante que lorsque les deux chaînes ne correspondent pas.

Voici une liste d’autres tests basés sur des chaînes que vous pouvez utiliser:

  • string: l’utilisation d’un argument seul teste si la chaîne n’est pas vide (null) ou n’est pas définie d’une manière ou d’une autre
  • -n chaîne: cela testera si la chaîne n’est pas vide et est définie
  • -z chaîne: cela testera si la chaîne est vide et est définie de cette façon

Et si?

J’admets que ce titre de section était définitivement un mauvais jeu de mots. D’accord, nous savons comment exécuter une commande si un test est vrai, mais que faire si nous voulons exécuter une commande différente si elle est fausse? Nous pouvons facilement mettre les deux ensemble en ajoutant une section à nos déclarations «si-alors» – un «autre»!

si CONDITION
puis
commande1
commande2

commande
autre
commande1
commande2

commande
Fi

Créons un script simple.

Il y a tout avec l’indentation appropriée. Si vous regardez attentivement, vous remarquerez que nous avons utilisé des crochets ( [ and ] ) au lieu de la commande de test. Ils sont fonctionnellement équivalents pour nos besoins, et vous êtes beaucoup plus susceptible de voir les crochets pour diverses raisons, nous les utiliserons donc à partir de maintenant.

Voici à quoi ressemblera la sortie:

C’est si facile!

Qu’est-ce que je fais maintenant?

Maintenant que vous savez comment utiliser les instructions «if-then-else», vous pouvez exécuter des scripts capables d’effectuer des tests. Par exemple, vous pouvez exécuter un script qui calculera un hachage md5 d’un fichier, puis le comparera à celui que vous avez téléchargé dans un fichier pour voir s’ils correspondent.

Pour certains points bonus, vous pouvez créer un script qui a une boucle «for», mais utilise des conditions de test au lieu de lire des lignes dans un fichier liste…

Nous arrivons à certaines des parties les plus intéressantes de notre Guide du débutant sur les scripts Shell. Si vous avez manqué les leçons précédentes, voici une liste rapide à consulter:

  1. Les bases du script Shell
  2. Utilisation des boucles For
  3. Plus de commandes de base
  4. Quelles sont les différences entre les shells Linux?
  5. Comment utiliser les expressions régulières de base

Si vous avez créé ou utilisé des scripts qui utilisent des conditions de test, des instructions if-then-else et des boucles «for», partagez avec nous dans les commentaires!

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Comment résoudre les problèmes de son sous Windows 10

Comment résoudre les problèmes de son sous Windows 10

Ajoutez facilement OpenDNS à votre routeur

Ajoutez facilement OpenDNS à votre routeur