La structure de contrôle : if

La structure de contrôle conditionnelle if permet d’effectuer une action en fonction d’une expression logique.

Syntaxe 1

Dans cette première syntaxe, si la commande cmd se passe bien (retourne la valeur 0) alors les instructions qui se trouvent après le mot clé then sont exécutées.

Syntaxe 2

Dans cette deuxième syntaxe, si la commande cmd se passe bien (retourne la valeur 0) alors les instructions qui se trouvent après le mot clé then sont exécutées sinon ce sont les instructions qui se trouvent après le mots clé else qui sont exécutées.

Syntaxe 3

Dans cette troisième syntaxe, si la commande cmd1 se passe bien (retourne la valeur 0) alors les instructions1 qui se trouvent après le mot clé then sont exécutées, sinon, si la commande cmd2 se passe bien (retourne la valeur 0) alors ce sont les instructions2 qui sont exécutées; Sinon exécutions des instructions4.

Syntaxe 4

Le fonctionnement reste le même que dans la syntaxe 3. Mais on a ajouté une ligne elif cmd. Il est possible d’en rajouter autant que nécessaire. Attention cependant à garder un code lisible et compréhensible.

Syntaxe avec l’opérateur logique OU

Dans cette syntaxe, nous utilisons l’opérateur logique OU. Ce dernier est représenté par la séquence de caractères ||.La condition if sera vérifier si l’une des commandes cmd ou cmd2 retourne sans erreur (code retour 0).

Syntaxe avec l’opérateur logique ET

Dans cette syntaxe, nous utilisons l’opérateur logique ET. Ce dernier est représenté par la séquence de caractères &&. La condition if sera vérifier si les commandes cmd et cmd2 retourne la valeur vrai (code retour 0).

Exemples

Comparer le contenu d’une variable avec une chaîne de caractères

Nous souhaitons ici comparer le contenu de la variable $var avec la chaîne de caractères « bonjour » et afficher ok sur la sortie standard si ces dernières sont identiques. Voici à quoi ressemble notre code :

Comparer le contenu d’une variable avec un entier

Nous souhaitons comparer le contenu de notre variable avec un entier. Pour cela il est nécessaire d’utiliser le mot clé -eq. Voici à quoi ressemble notre code si nous comparons la variable $var à l’entier 5.

Exploiter le résultat de la commande grep

Dans cet exemple nous utilisons le fichier /etc/passwd qui contient les informations relatives aux comptes utilisateurs existants sur le système, nous faisons appelle à la commande grep pour rechercher si romain est présent ou non dans ce fichier. Suivant la valeur de retour de grep (valeur de retour : 0 ou 1) alors on affiche un message différent. Voici le code :

Vérifier l’existence d’un répertoire

L’option -d permet de tester si un répertoire existe. Dans cet exemple, si le répertoire /mnt n’existe pas alors il est créé.

L’opérateur logique OU

L’opérateur logique OU est représenté par la séquence de caractères ||. Dans cet exemple si la variable $var est égale à 4 ou 5 alors l’instruction sera réalisée (la chaîne ok sera affichée sur la sortie standard). Voici le code source :

L’opérateur logique ET

L’opérateur logique ET est représenté par la séquence de caractères &&. Dans cet exemple, si la variable $USER est egale à root et si la variable $var est égale à 5 alors la condition est vérifiée, l’instruction echo ok est alors réalisée, la chaîne ok est affichée sur la sortie standard. Voici le code source de l’exemple :

Intervalle numérique

Si la variable $val est inférieure à 127 et supérieure à 0 alors la condition est vérifiée.

Chaînes de caractères différentes

Le mot clé != permet de comparer deux chaînes et retourne vrai (code retour 0) si elles sont différentes. Dans l’exemple ci-dessous nous vérifions que la variable $USER ne soit pas égale à root, dans ce cas la condition est vérifiée. Voici le code :

Entiers différents

Pour vérifier que deux entiers soient différents, il faut utiliser le mot clé -ne (not egal). Dans l’exemple ci-dessous la condiftion est vérifiée lorsque la variable $var n’est pas égale à 6.

Vérifier si un fichier est existant

Dans l’exemple ci-dessous la condition est vérifiée lorsque le fichier /etc/passwd existe.

Tester si une chaîne est vide

Pour tester si une chaîne est vide nous utilisons dans cet exemple l’option -z. La condition est vérifiée si la variable $var contient une chaîne vide.Voici le code source :

Vérifier si un fichier est accessible en lecture

Pour vérifier si un fichier est lisible, il est nécessaire d’utiliser l’option -r. Exemple :

Vérifier si un fichier est accessible en écriture

Pour vérifier si un fichier est écriture (afin de savoir si il est modifiable) vous pouvez utiliser l’option l’option -w. Exemple :

Laisser un commentaire