Le guide du débutant pour Shell Script 4 Conditions et déclarations if-then
Dans notre guide sur les scripts shell, nous avons abordé suffisamment de bases pour que vous puissiez expérimenter à l'aise. Dans la suite de cette semaine, nous aborderons certaines des choses les plus amusantes, telles que les conditions et les déclarations «if-then».
Quelles sont les conditions?
Dans le langage de tous les jours, nous disons que les conditions sont des conditions auxquelles il faut satisfaire 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 sous tension, mon ordinateur portable sous tension, etc. 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 du tout. 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 passe une fois que les conditions du test sont remplies, nous utilisons des instructions «if-then». Leur format est assez simple.
si condition
puis
commande1
commande2
…
commandn
Fi
Si les déclarations
Lançons un petit script de test, allons-nous?
si test $ 1 -gt $ 2
puis
echo “1 $ est supérieur à 2 $”
Fi
Vous remarquerez que c'est uniquement lorsque cette condition est vraie que le script exécutera la commande suivante. Sinon, l'instruction «if» se fermera. S'il existe 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 ceci:
echo "Ceci vient après la déclaration if"
Voici quelques autres opérateurs numériques que vous voudrez peut-être essayer:
- -eq: égal à
- -ne: pas égal à
- -lt: moins de
- -le: inférieur ou égal à
- -gt: supérieur à
- -ge: supérieur ou égal à
Test des cordes
Maintenant, si nous modifions la première ligne de notre script pour être ceci:
si test $ 1 = $ 2
alors la condition testera si les deux sont égaux. Il y a un piège 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 «pas». Autrement dit, il n’exécute la commande suivante que lorsque les deux chaînes ne correspondent pas.
Voici une liste de quelques autres tests basés sur des chaînes que vous pouvez utiliser:
- string: utiliser seulement un argument par lui-même pour tester si la chaîne n'est pas vide (null) ou définie d'une manière ou d'une autre
- -n chaîne: ceci testera si la chaîne n'est pas vide et est définie
- -Chaîne z: ceci testera si la chaîne est vide et est définie de cette façon
Qu'y a-t-il d'autre si?
Je dois admettre que ce titre de section était définitivement un mauvais jeu de mots Bon, 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 réunir les deux en ajoutant une section à nos déclarations «si-alors» - un «autre»!
si condition
puis
commande1
commande2
…
commandn
autre
commande1
commande2
…
commandn
Fi
Mettons ensemble un script simple.
Il y a tout avec l'indentation appropriée. Si vous regardez de plus près, vous remarquerez que nous avons utilisé les crochets ([et]) à la place de la commande 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 utiliser les instructions «if-then-else», vous pouvez exécuter des scripts permettant d'effectuer des tests. Par exemple, vous pouvez exécuter un script qui calcule le hachage md5 d'un fichier, puis le compare à celui que vous avez téléchargé dans un fichier pour voir s'il correspond..
Pour certains points bonus, vous pouvez créer un script avec une boucle «pour», mais utilisant des conditions de test au lieu de lire les lignes d'un fichier de liste…
Nous abordons certaines des parties les plus intéressantes de notre Guide du débutant pour Shell Scripting. Si vous avez manqué les leçons précédentes, voici une liste rapide à vérifier:
- Les bases du script shell
- Utiliser des boucles for
- Plus de commandes de base
- Quelles sont les différences entre les shells Linux?
- 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 «pour», partagez-les avec nous dans les commentaires.!