Si et sinon les conditions dans le script Zsh

Si et sinon les conditions dans le script Zsh
La prise de décision, également appelée conditionnel, est un élément fondamental de la programmation. Dans ce tutoriel, nous discuterons de la façon de mettre en œuvre des conditions dans nos scripts en utilisant le shell Zsh.

Il est bon de noter que puisque Zsh est construit sur le dessus de Bash, la syntaxe et les fonctionnalités sont similaires pour les scripts construits pour Bash ou Zsh Shell.

Si déclaration

La façon la plus élémentaire d'implémenter la logique conditionnelle à un script shell est en utilisant une instruction IF. La syntaxe générale pour une instruction IF dans ZSH est ci-dessous:

#!/ usr / bin / zsh
Si condition
alors
// Exécuter les commandes
Fi

Pour implémenter une instruction IF, nous commençons par appeler le mot-clé If. Nous passons ensuite l'expression conditionnelle pour évaluer. L'expression conditionnelle doit renvoyer une valeur booléenne.

Une fois l'expression conditionnelle sur le mot clé et le bloc FI, à l'intérieur de ces blocs, nous passons les commandes à exécuter si l'expression conditionnelle évalue à True.

Si l'expression conditionnelle passée évalue à un faux booléen, le bloc de commandes à l'intérieur du bloc alors fi est ignoré et les sorties conditionnelles.

Bien qu'il ne soit pas nécessaire, il est recommandé de mettre vos blocs de code pour la lisibilité et la maintenance.

Considérez l'exemple si l'instruction ci-dessous:

condition des conditions.SH && VIM Conditionsals.shot
#!/ usr / bin / zsh
Si [[100 -GT 50]]
alors
Echo "100 est supérieur à 50"
Fi

Enregistrer le fichier et fermer.

Ensuite, rendez le fichier exécutable à l'aide de la commande chmod comme:

CHMOD + X Conditionsals.shot

Enfin, exécutez le script comme:

./ conditionnels.shot

Le script exécutera le bloc IF et vérifiera si 100 est supérieur à 50. Si c'est vrai, il exécutera la commande Echo et sortira.

Vous trouverez ci-dessous un exemple de sortie:

$ ./conditionnel.shot
100 est supérieur à 50

Si… Else Déclaration

Une version plus évoluée de l'instruction if est la déclaration if… else. Il fonctionne comme l'instruction IF mais ajoute une poignée si l'expression conditionnelle évalue à False.

Vous trouverez ci-dessous la syntaxe générale pour la déclaration if… else:

#!/ usr / bin / zsh
Si conditionnelle
alors
// commande à exécuter si vrai
autre
// commandes d'exécution si fausse
Fi

Comme le montre l'exemple ci-dessus, si l'expression conditionnelle est évaluée à True, le bloc entre les instructions de The Or et Else. Cependant, si faux, le bloc Else s'exécute.

Considérez l'exemple ci-dessous:

#!/ usr / bin / zsh
echo -n "Entrez un numéro:"
Lire Num
Si [[$ num -gt 50]]
alors
Echo "$ num est supérieur à 50"
autre
Echo "$ num n'est pas supérieur à 50"
Fi

Dans l'exemple de script, nous demandons à l'utilisateur d'entrer un numéro. Si le nombre est supérieur à 50, nous faisons écho que le nombre est supérieur à 50. Si faux, nous faisons écho au nombre n'est pas supérieur à 50.

Vous trouverez ci-dessous un exemple de sortie:

$ ./conditionnel.shot
Entrez un numéro: 10
10 n'est pas supérieur à 50
$ ./conditionnel.shot
Entrez un nombre: 80
80 est supérieur à 50

Si… ELIF… ELSE CONSEILS

Dans certains cas, vous voudrez peut-être tester plusieurs conditions dans un bloc. Pour implémenter une telle logique, nous pouvons utiliser la déclaration if… elif… else.

Dans une déclaration if… elif… else, nous ajoutons plusieurs expressions conditionnelles où une seule condition évalue à True. Si la première condition est vraie, exécutez son bloc; Sinon, vérifiez la seconde et continuez jusqu'à ce que toutes les conditions soient vérifiées.

La syntaxe du bloc if… elif est:

#!/ usr / bin / zsh
Si condition1
alors
// Block1
ELIF CONDITION2
alors
// Block2
Elif Conditionn
alors
// Blockn
autre
// Si toutes les conditions évaluent à False
Fi

Les conditions sont évaluées séquentiellement. Si l'on évalue à True, son bloc de code est exécuté. Cependant, si aucune des conditions n'est vraie, le bloc Else est exécuté.

Le bloc Else est facultatif mais recommandé pour gérer une situation où aucune condition n'est vraie.

Voici un exemple de script:

Si [[$ num -eq 10]]
alors
echo "numéro = $ num"
elif [[$ num -eq 20]]
alors
echo "numéro = $ num"
elif [[$ num -eq 30]]
alors
echo "numéro = $ num"
autre
Echo "Le nombre n'est ni 10, 20 ni 30"
echo "numéro = $ num"
Fi

Le script ci-dessus implémente un bloc ELF si le nombre entré est soit 10, 20 ou 30. Sinon, l'essentiel bloque pour gérer la condition comme indiqué dans l'exécution ci-dessous:

./conditionnel.shot
Entrez un numéro: 10
Nombre = 10
Entrez un numéro: 20
Nombre = 20
Entrez un numéro: 30
Nombre = 30
Entrez un nombre: 51
Le nombre n'est ni 10, 20 ni 30
Nombre = 51

Vous pouvez avoir autant de déclarations ELIF que vous le voyez. Cependant, si de tels scénarios se produisent, envisagez de mettre en œuvre un bloc de cas.

Opérateurs conditionnels

Dans les exemples ci-dessus, nous avons mis en œuvre des opérateurs conditionnels tels que -eq (égal à) et -gt (supérieur à). ZSH prend en charge d'autres opérateurs conditionnels tels que:

  • a -eq b - Vrai si a est numériquement égal à b
  • A -gt B - Vrai si A est numériquement supérieur à B
  • A -Lt B - Vrai si A est numériquement moins que b
  • a -ne b - Vrai est a n'est pas numériquement égal à b
  • a -le b - Vrai si a est numériquement inférieur ou égal à b
  • a -ge b - Vrai si A est numériquement supérieur ou égal à b
  • un != b - Vrai si la chaîne a n'est pas égale à la chaîne b
  • a = b - Vrai si la chaîne a est égale à la chaîne b
  • -z chaîne - Vrai si la longueur de la chaîne est nulle
  • -n corde - Vrai si la longueur de la chaîne est non nulle
  • -un fichier - Vrai si le fichier existe
  • -h File - Vrai si le fichier existe et est un lien symbolique
  • -F fichier - Vrai si le fichier existe et est un fichier régulier (pas un répertoire ou un fichier spécial)
  • -d fichier - Vrai si le fichier existe et est un répertoire
  • -fichier e - Vrai si le fichier existe quel que soit le type
  • -R Fichier - Vrai si le fichier existe et est lisible par le processus actuel
  • -fichier w - Vrai si le fichier existe et est inscrit par le processus actuel
  • -fichier x - Vrai si le fichier existe et est exécutable par le processus actuel
  • -gir - True si le fichier existe et a un ensemble de bits setgid
  • -sceau - Vrai si le fichier existe et que la taille est supérieure à zéro
  • -u - True si le fichier existe et a un ensemble de bits setuid
  • -o fichier - Vrai si le fichier existe et appartient à l'ID actuel
  • ! Exp - Vrai si l'expression est fausse
  • un B - Vrai si A et B sont vrais
  • A || b - Vrai si A ou B est vrai

Ce qui précède sont des exemples d'expressions conditionnelles que vous pouvez utiliser dans vos scripts ZSH. Consultez la documentation pour en savoir plus.

Conclusion

Ce tutoriel vous a montré comment implémenter la logique conditionnelle dans nos scripts ZSH en utilisant les instructions IF. N'hésitez pas à consulter la documentation de script ZSH pour en savoir plus.

Merci pour la lecture!