logo

Script Bash – Instruction If

Bash est un interpréteur pour les langages de commande. C'est un interpréteur de commandes par défaut sur la plupart des systèmes GNU/ Systèmes Linux et est largement disponible sur divers systèmes d'exploitation. Le nom est une abréviation de Bourne-Again SHell . Les scripts permettent d'exécuter des instructions qui autrement seraient exécutées une par une de manière interactive.

Dans cet article, nous discuterons de l'instruction if dans les scripts bash.



Bash si instruction

La syntaxe de base d'une instruction « if » dans Bash :

#!/bin/bash  if [ condition ]; then  # code to be executed if the condition is true fi>

Explication:

  • if [ condition ]; then> : Cette ligne commence l'instruction if, oùcondition>est l'expression qui est évaluée. Si la condition est vraie, le code à l'intérieur duthen>Le bloc est exécuté.
  • # code to be executed if the condition is true> : Il s'agit du bloc de code qui est exécuté si la condition spécifiée dans l'instruction if est vraie.
  • fi> : Ceci marque la fin de l'instruction if.

Script Bash pour déterminer si un nombre est pair

Ce qui suit est un exemple scénario cela vous demandera de saisir un nombre, puis vérifiera si le nombre donné est pair.

#!/usr/bin/bash
# Ce script invite l'utilisateur à saisir un numéro, vérifie s'il est pair et imprime un message en conséquence.
# Inviter l'utilisateur à saisir un numéro



echo -n Entrez le numéro :
lire x

# Vérifiez si le numéro saisi est pair
si [ $((x % 2)) == 0 ]; alors
echo Le nombre est pair
être

Explication:



  1. #!/usr/bin/bash> : Il s'agit d'une ligne shebang qui spécifie le chemin vers l'interpréteur Bash. Cela indique que le script doit être exécuté en utilisant Bash.
  2. echo -n 'Enter Number: '> : Cette ligne imprime l'invite Enter Number: sans caractère de nouvelle ligne (-n>option). Il attend que l'utilisateur saisisse un numéro.
  3. read x>  : Lit l'entrée de l'utilisateur et l'affecte à la variablex>.
  4. if [ $((x % 2)) == 0 ]; then> : Cette ligne vérifie si le reste de la division du nombre saisi (x>) par 2 est égal à 0. Si vrai, cela signifie que le nombre est pair.
  5. echo 'Number is Even'> : Si la condition de l'instruction if est vraie, cette ligne affiche Number is Even sur la console.

Sortir:

Script Bash pour déterminer si un nombre est pair

Script Bash pour déterminer si un nombre est pair

Note: Le script ne gère pas les cas où l'utilisateur saisit une valeur non numérique. Si l'utilisateur saisit une valeur non numérique, cela peut produire des résultats inattendus. Une validation d’entrée supplémentaire pourrait être ajoutée pour résoudre ce problème.

Déclaration Bash if-else

La syntaxe de base d'une instruction « if-else » dans Bash :

#!/bin/bash

si [condition]; alors

sous-chaîne_index dans SQL

# code à exécuter si la condition est vraie

autre

# code à exécuter si la condition est fausse

être

Explication:

  • if [ condition ]; then> : Cette ligne commence l'instruction if, oùcondition>est l'expression qui est évaluée. Si la condition est vraie, le code à l'intérieur duthen>Le bloc est exécuté.
  • # code to be executed if the condition is true> : Il s'agit du bloc de code qui est exécuté si la condition spécifiée dans l'instruction if est vraie.
  • else> : Si la condition de l'instruction if est fausse, le code à l'intérieur de l'instruction if est faux.else>Le bloc est exécuté.
  • # code to be executed if the condition is false> : Il s'agit du bloc de code qui est exécuté si la condition spécifiée dans l'instruction if est fausse.
  • fi> : Ceci marque la fin de l'instruction if-else.

Comment trouver le plus grand nombre à l'aide d'instructions if-else dans un script Bash ?

Voici le script Bash pour connaître le plus grand nombre à l'aide de l'instruction if-else dans le script Bash.

#!/bin/bash
# Inviter l'utilisateur à saisir une valeur pour x

echo -n Entrez la valeur de x :
lire x

si [ $x -gt 5 ]; alors
l'écho x est supérieur à 5
autre
l'écho x n'est pas supérieur à 5
être

Explantation :

  • #!/bin/bash : Cette ligne s'appelle un shebang et indique que le script doit être interprété et exécuté à l'aide du shell Bash.
  • # Inviter l'utilisateur à saisir une valeur pour x : Ceci est un commentaire indiquant le but de la ligne suivante.
  • echo -n Entrez la valeur de x : : Cette ligne imprime le message Entrez la valeur de x: sur le terminal sans passer à la ligne suivante. L'utilisateur saisira sa valeur sur la même ligne.
  • lire x : Cette ligne lit l'entrée de l'utilisateur et l'affecte à la variable « x ».
  • si [ $x -gt 5 ]; alors : Il s'agit d'une instruction if qui vérifie si la valeur de « x » est supérieure à 5.
    • x $ : Représente la valeur de la variable 'x'.
    • -gt : Signifie plus grand que dans le contexte d'une comparaison numérique.
    • 5 : La valeur à comparer.
  • l'écho x est supérieur à 5 : Si la condition de la ligne précédente est vraie, cette ligne sera exécutée, en imprimant x supérieur à 5 au terminal.
  • autre : Si la condition de l'instruction if est fausse, le script passe au bloc else.
  • l'écho x n'est pas supérieur à 5 : Cette ligne est exécutée si la valeur de 'x' n'est pas supérieure à 5, l'impression de x n'est pas supérieure à 5 sur le terminal.
  • être : Cela signifie la fin du bloc if-else.

Sortir:

Trouver un plus grand nombre en utilisant if-else

Trouver un plus grand nombre en utilisant if-else

Déclaration Bash if-elif-else

Leif-elif-else>L'instruction dans Bash est utilisée pour le branchement conditionnel. Il vous permet de spécifier plusieurs conditions et d'exécuter différents blocs de code en fonction de l'évaluation de ces conditions.

La syntaxe de base d'une instruction `if-elif-else` dans Bash :

#!/bin/bash

si [ condition1 ] ; alors
# Code à exécuter si la condition1 est vraie
elif [ condition2 ]; alors
# Code à exécuter si la condition2 est vraie
elif [ condition3 ]; alors
# Code à exécuter si la condition3 est vraie
autre
# Code à exécuter si aucune des conditions n'est vraie
être

Explication:

  • si [ condition1 ] ; alors : C'est le point de départ duif-elif-else>déclaration. Le code de ce bloc sera exécuté sicondition1>est vrai.
  • # Code à exécuter si la condition1 est vraie : Remplacez ce commentaire par le code réel que vous souhaitez exécuter sicondition1>est vrai.
  • elif [ condition2 ]; alors : Sicondition1>est faux, le script vérifiecondition2>. Sicondition2>est vrai, le code de ce bloc est exécuté.
  • # Code à exécuter si la condition2 est vraie : Remplacez ce commentaire par le code réel que vous souhaitez exécuter sicondition2>est vrai.
  • elif [ condition3 ]; alors : Si les deuxcondition1>etcondition2>sont faux, le script vérifiecondition3>. Sicondition3>est vrai, le code de ce bloc est exécuté.
  • # Code à exécuter si la condition3 est vraie : Remplacez ce commentaire par le code réel que vous souhaitez exécuter sicondition3>est vrai.
  • autre : Si aucune des conditions précédentes (condition1, condition2, condition3, etc.) n'est vraie, le code dans leelse>Le bloc est exécuté.
  • # Code à exécuter si aucune des conditions n'est vraie : Remplacez ce commentaire par le code réel que vous souhaitez exécuter si aucune des conditions n'est vraie.
  • être : Ceci marque la fin duif-elif-else>déclaration. Le mot fi est épelé à l’envers et est utilisé pour fermer les blocs conditionnels dans Bash.

Comment savoir si le nombre est positif, négatif ou nul à l'aide de l'instruction « if-elif-else » dans Bash ?

Augmentons le code dans l'exemple ci-dessus pour ajouter la condition permettant de vérifier zéro.

#!/bin/bash

# Inviter l'utilisateur à saisir un numéro

ajouter la gestion des exceptions Java

echo -n Entrez un nombre :
lire le numéro

si [ $num -gt 0 ]; alors
echo $num est un nombre positif.
elif [ $num -lt 0 ]; alors
echo $num est un nombre négatif.
autre
echo $num est nul.
être

0,04 en fraction

Explication:

  • #!/bin/bash : Cette ligne est un shebang indiquant que le script doit être interprété et exécuté à l'aide du shell Bash.
  • # Inviter l'utilisateur à saisir un numéro : Ceci est un commentaire indiquant le but de la ligne suivante.
  • echo -n Entrez un nombre : : Cette ligne imprime le message Entrer un numéro : sur le terminal sans passer à la ligne suivante. L'utilisateur saisira son numéro sur la même ligne.
  • lire le numéro : Cette ligne lit la saisie de l'utilisateur et l'affecte à la variable 'num'.
  • si [ $num -gt 0 ]; alors : Il s'agit d'une instruction if qui vérifie si la valeur de « num » est supérieure à 0.
    • num $ : Représente la valeur de la variable 'num'.
    • -gt : Signifie plus grand que dans le contexte d'une comparaison numérique.
    • 0 : La valeur à comparer.
  • echo $num est un nombre positif. : Si la condition de la ligne précédente est vraie, cette ligne sera exécutée, l'impression de $num est un nombre positif. au terminal.
  • elif [ $num -lt 0 ]; alors : Si la condition de l'instruction if est fausse, cette ligne vérifie si la valeur de 'num' est inférieure à 0.
    • num $ : Représente la valeur de la variable 'num'.
    • -lt : Signifie moins que dans le contexte d’une comparaison numérique.
    • 0 : La valeur à comparer.
  • echo $num est un nombre négatif. : Si la condition de l'instruction elif est vraie, cette ligne sera exécutée, l'impression de $num est un nombre négatif. au terminal.
  • autre : Si les deux conditions des instructions if et elif sont fausses, le script passe au bloc else.
  • echo $num est nul. : Cette ligne est exécutée si la valeur de 'num' n'est ni supérieure à 0 ni inférieure à 0, l'impression de $num est nulle. au terminal.
  • être : Cela signifie la fin du bloc if-elif-else.

Sortir:

si le nombre est positif, négatif ou zéro en utilisant `if-elif-else`

si le nombre est positif, négatif ou zéro en utilisant `if-elif-else`

Bash imbriqué si instruction

Dans Bash, vous pouvez utiliser desif>instructions pour créer des structures conditionnelles plus complexes. Voici la syntaxe d'un imbriquéif>déclaration:

#!/bin/bash

si [ condition1 ] ; alors
# Code à exécuter si la condition1 est vraie
si [ condition2 ] ; alors
# Code à exécuter si la condition2 est vraie
autre
# Code à exécuter si la condition2 est fausse
être
autre
# Code à exécuter si la condition1 est fausse
être

Explication:

  • si [ condition1 ] ; alors : C'est l'extérieurif>déclaration. Sicondition1>est vrai, le code à l’intérieur de ce bloc est exécuté.
  • # Code à exécuter si la condition1 est vraie : Remplacez ce commentaire par le code réel que vous souhaitez exécuter sicondition1>est vrai.
  • si [ condition2 ] ; alors : À l'intérieur du bloc de l'extérieurif>déclaration, il y a un intérieurif>déclaration. Sicondition2>est vrai, le code à l’intérieur de ce bloc est exécuté.
  • # Code à exécuter si la condition2 est vraie : Remplacez ce commentaire par le code réel que vous souhaitez exécuter sicondition2>est vrai.
  • autre : Sicondition2>à l'intérieurif>l'instruction est fausse, le code à l'intérieur duelse>bloc de l'intérieurif>l'instruction est exécutée.
  • # Code à exécuter si la condition2 est fausse : Remplacez ce commentaire par le code réel que vous souhaitez exécuter sicondition2>c'est faux.
  • être : Cela marque la fin de l'intérieurif>déclaration.
  • autre : Sicondition1>à l'extérieurif>l'instruction est fausse, le code à l'intérieur duelse>bloc de l'extérieurif>l'instruction est exécutée.
  • # Code à exécuter si la condition1 est fausse : Remplacez ce commentaire par le code réel que vous souhaitez exécuter sicondition1>c'est faux.
  • être : Cela marque la fin de l'extérieurif>déclaration.

Comment vérifier l'âge d'admissibilité et les avantages pour les personnes âgées dans Bash à l'aide d'instructions If imbriquées ?

Modifions un peu le code ci-dessus pour utiliser nested-if.

#!/bin/bash
# Inviter l'utilisateur à entrer un âge
echo -n Entrez votre âge :
lire l'âge

si [ $age -ge 18 ]; alors
echo Vous avez le droit de voter.
si [ $age -ge 65 ]; alors
echo Vous avez également droit aux prestations seniors.
autre
echo Vous n'êtes pas encore éligible aux prestations seniors.
être
autre
echo Vous n'êtes pas encore éligible pour voter.
être

Explication:

  • #!/bin/bash : Cette ligne est un shebang indiquant que le script doit être interprété et exécuté à l'aide du shell Bash.
  • # Inviter l'utilisateur à entrer un âge : Ceci est un commentaire indiquant le but de la ligne suivante.
  • echo -n Entrez votre âge : : Cette ligne imprime le message Entrez votre âge : sur le terminal sans passer à la ligne suivante. L'utilisateur saisira son âge sur la même ligne.
  • lire l'âge : Cette ligne lit la saisie de l’utilisateur et l’affecte à la variable « âge ».
  • si [ $age -ge 18 ]; alors : Il s'agit d'une instruction if qui vérifie si la valeur de « age » est supérieure ou égale à 18.
    • $âge : Représente la valeur de la variable 'age'.
    • -ge : Signifie supérieur ou égal à dans le contexte d'une comparaison numérique.
    • 18 : La valeur à comparer.
  • echo Vous avez le droit de voter. : Si la condition de la ligne précédente est vraie, cette ligne sera exécutée, affichant Vous êtes éligible pour voter. au terminal.
  • si [ $age -ge 65 ]; alors : À l’intérieur du premier bloc if, il s’agit d’une autre instruction if qui vérifie si la valeur de « age » est supérieure ou égale à 65.
    • $âge : Représente la valeur de la variable 'age'.
    • -ge : Signifie supérieur ou égal à dans le contexte d'une comparaison numérique.
    • 65 : La valeur à comparer.
  • echo Vous avez également droit aux prestations seniors. : Si la condition de la déclaration if interne est vraie, cette ligne sera exécutée, en imprimant Vous êtes également éligible aux prestations pour personnes âgées. au terminal.
  • autre : Si la condition dans l'instruction if interne est fausse, le script passe au bloc else à l'intérieur de l'instruction if externe.
    • echo Vous n'êtes pas encore éligible aux prestations seniors. : Cette ligne est exécutée si la valeur de « âge » n’est pas supérieure ou égale à 65, en imprimant Vous n’êtes pas encore éligible aux prestations seniors. au terminal.
  • être : Cela signifie la fin du bloc if-else interne.
  • autre : Si la condition dans l'instruction if externe est fausse, le script passe au bloc else.
    • echo Vous n'êtes pas encore éligible pour voter. : Cette ligne est exécutée si la valeur de « âge » n’est pas supérieure ou égale à 18, en imprimant Vous n’êtes pas encore éligible pour voter. au terminal.
  • être : Cela signifie la fin du bloc if-else externe.

Sortir:

imbriqué si vous utilisez Bash

imbriqué si vous utilisez Bash

FAQ et quelques notes sur l'ÉTAT

Ce sont quelques éléments à garder à l’esprit lors de l’écriture des conditions de test dans bash.

1. Assurez-vous qu'il y a des espaces entre les crochets et l'instruction de vérification/comparaison réelle.

Par exemple, ce qui suit ne fonctionnera pas.

if [$x==0]>

Bash signalera une erreur concernant un manquant ] .

2. Terminez toujours la ligne avant d'ajouter un nouveau mot-clé, par exemple then.

If, then, else, elif et fi sont tous des mots-clés shell, ce qui signifie qu'ils ne peuvent pas être utilisés sur la même ligne. Mettez un ; entre l'instruction précédente et le mot-clé, ou commencez une nouvelle ligne avec le mot-clé.

3. Pour utiliser plusieurs conditions dans une seule instruction, utilisez des opérateurs logiques.

Nous pouvons utiliser des opérateurs logiques AND(&&) ou logique OR(||) pour utiliser plusieurs conditions.

Par exemple:

if [[ $x -ge $y ]] && [[ $x -ge $z ]]; then  echo 'x is greatest' fi>

Ici, -ge est un raccourci pour supérieur ou égal à

4. Comment comparer des chaînes dans une instruction Bash if ?

Utilisez le ` => `>opérateur pour l'égalité des chaînes et ` !=`> pour les inégalités.

Par exemple:

if [ '$string1' = '$string2' ]; then  # Code to execute if strings are equal else  # Code to execute if strings are not equal fi>

5. Puis-je utiliser des expressions régulières dans les instructions Bash if ?

Oui, vous pouvez utiliser le ` [[ ... ]]`> construction pour une correspondance de chaînes plus avancée avec des expressions régulières.

Par exemple:

if [[ '$string' =~ ^[0-9]+$ ]]; then  # Code to execute if the string contains only numbers else  # Code to execute if the string does not contain only numbers fi>

6. Comment vérifier si un fichier existe dans un script Bash à l'aide d'une instruction if ?

Vous pouvez utiliser le ` -e`> drapeau dans la condition, comme ceci :

if [ -e 'filename' ]; then  # Code to execute if the file exists else  # Code to execute if the file does not exist fi>

7. Quelle est la syntaxe d'une instruction if-else dans les scripts Bash ?

La syntaxe de base pour un 'si-sinon' L'instruction dans les scripts Bash est :

if [ condition ]; then  # Code to execute if condition is true else  # Code to execute if condition is false fi>

8. Comment utiliser l'instruction elif dans un script Bash ?

Le ' elif`> L'instruction est utilisée pour vérifier des conditions supplémentaires si l'instruction initialeif>la condition est fausse.

Voici un exemple :

if [ condition1 ]; then  # Code to execute if condition1 is true elif [ condition2 ]; then  # Code to execute if condition2 is true else  # Code to execute if none of the conditions are true fi>

9. Comment puis-je utiliser des opérateurs logiques (AND, OR) dans les instructions Bash if ?

Vous pouvez utiliser ` -a`> pour ET logique et ` -o`> pour le OU logique.

algorithme kmp

Par exemple:

if [ condition1 -a condition2 ]; then  # Code to execute if both conditions are true fi>

Conclusion

Dans cet article, nous avons discuté des scripts Bash, qui constituent un outil très utile pour permettre à votre ordinateur de faire des choses automatiquement. Cet article nous a appris l'instruction if dans Bash, qui est comme un décideur dans les scripts. Nous avons appris les bases, vu des exemples comme vérifier si un nombre est pair ou déterminer si quelqu'un peut voter, et même exploré des choses plus sophistiquées comme gérer de nombreuses conditions ou mettre des déclarations if les unes dans les autres. L'article donnait des explications claires, des exemples et répondait aux questions courantes pour nous aider à mieux utiliser les scripts Bash. L'essentiel à retenir est de faire attention aux détails tels que l'espacement et les règles spéciales, afin que nos scripts fonctionnent correctement et facilitent la gestion des tâches sur l'ordinateur.