Recherche de site Web

Bash Scripting : instruction if imbriquée


Une instruction if dans un script Bash est la façon la plus simple d’utiliser une instruction conditionnelle.

En termes simples, ces instructions conditionnelles définissent « si une condition est vraie, alors faites cela, sinon faites ceci à la place. » Les instructions if deviennent plus complexes lorsque vous les imbriquez ensemble, ou en d’autres termes, placez une instruction if dans une autre if déclaration. Vous pouvez rendre le nid aussi profond que vous le souhaitez, bien qu’il continue à devenir plus complexe.

Dans ce tutoriel, vous allez apprendre à utiliser des instructions if imbriquées dans un script Bash sur un système Linux. Consultez certains des exemples ci-dessous pour voir comment fonctionnent les instructions if imbriquées.

Dans ce tutoriel, vous allez apprendre :

  • Comment structurer une instruction if imbriquée dans un script Bash
  • Exemple réel d’instructions if imbriquées à essayer sur votre propre système

Structure d’une instruction if imbriquée

Tout d’abord, voyons comment une instruction if imbriquée est structurée dans un script Bash. Cela vous familiarisera avec la syntaxe afin que vous puissiez facilement interpréter les exemples à venir, et éventuellement écrire les vôtres à partir de zéro.

#!/bin/bash

if EXPRESSION1; then
    STATEMENT1
	
    if EXPRESSION2; then
        STATEMENT2
	fi

fi

Il s’agit de la forme la plus élémentaire d’une instruction if imbriquée. Passons en revue ce qui se passe ici :

  • La première instruction if vérifie si une expression est vraie. Si c’est le cas, il procède à la première énoncé.
  • Après la première instruction, le script vérifie si une autre expression est vraie. Si c’est le cas, il passe à la deuxième affirmation.
  • Mais si la condition n’est pas mise en correspondance pour la deuxième instruction if, seule la première instruction est exécutée, puis le script s’échappe de l’intégralité de l’if imbriqué.
  • Si la première expression ne correspond pas, il n’y a aucune chance d’entrer dans l’instruction if imbriquée pour vérifier la deuxième condition ou toute autre condition ultérieure.
  • N’oubliez pas que la deuxième instruction if doit être terminée avant la première, car elle est imbriquée

Si tout cela n’a pas de sens au début, ne vous inquiétez pas. L’exemple ci-dessous vous aidera à mieux visualiser le processus.

Bash Scripting : exemple d’instruction if imbriquée

Consultez l’exemple ci-dessous pour voir comment utiliser des instructions if imbriquées dans un script Bash.

NOTE
Il est normalement avantageux d’utiliser une instruction case plutôt qu’un tas d’instructions if imbriquées.

Le script ci-dessous vérifiera d’abord s’il s’agit d’un jour de semaine (du lundi au vendredi). Si c’est le cas, il vérifiera alors si c’est le matin ou le soir (matin ou après-midi). Mais, si la première instruction if n’est pas respectée parce que c’est le week-end (samedi ou dimanche), alors la deuxième instruction if ne sera pas exécutée du tout.

#!/bin/bash

Determine the day of week and store it inside the $day variable
day=$(date +"%u")
Determine if it is morning or night and store it in the $time variable
time=$(date +"%p")

Check if the day of the week is between 1-5 (Mon-Fri)
if [ $day -le 5 ]; then
        # if it is a weekday, echo the text below
        echo "today is a weekday"
        # now determine if it is morning or night time
        if [ $time == "AM" ]; then
                echo "it is morning"
        else
                echo "it is night"
        fi
else
        # if the first condition was not met, execute the following command
        echo "today is the weekend!"
fi

Voici le résultat lorsque nous exécutons le script :


date
Fri 25 Feb 2022 09:55:14 PM EST

./test.sh 
today is a weekday
it is night

L’intérêt d’un if imbriqué est que la deuxième instruction if n’est utilisée que si la première instruction if est vraie. Dans ce cas, notre script ne vérifie l’heure de la journée que s’il a d’abord déterminé que le jour de la semaine est du lundi au vendredi. Nous avons laissé des commentaires dans le script pour faciliter la digestion.

Réflexions finales

Dans ce tutoriel, vous avez appris à utiliser une instruction if imbriquée dans les scripts Bash sur un système Linux. Ce type d’instruction conditionnelle a une utilisation de niche, car il est généralement préférable d’utiliser des instructions case. Si votre imbrication n’est que de deux instructions if, il est généralement facile de la maintenir et de comprendre ce qui se passe, comme nous l’avons montré dans l’exemple ici.

Articles connexes: