Les conditions

Présentation

Comme dans beaucoup d'autres langages, les conditions sont utilisées pour réaliser des branchements conditionnels. Il existe différentes structures conditionnelle en Bash.

Si, sinon si, sinon

Voici la syntaxe de base :

if [ condition ]; then
  # Instruction si condition est vrai
fi

Pour des branchement de type Si, sinon si, voici la syntaxe :

if [ condition ]; then
  # Instruction si condition est vrai
else
  # Exécutée dans le cas contraire
fi

Enfin pour effectuer des successions de test :

if [ condition1 ]; then
  # Instruction si condition1 est vrai
elif [ condition2 ]; then
  # Instruction si condition2 est vrai
else  
  # Exécuté si aucune condition n'a été vérifié
fi

Mise en pratique

Tout repose sur la maîtrise de la rédaction des conditions. Selon la nature de l'expression à tester, la syntaxe peut variée et parfois paraître mystérieuse.

Tester une chaîne

Voici quelques exemples de test de variable.

#!/bin/bash

# On test si $1 n'est pas vide
if [ -n "$1" ]; then
  echo "paramètre 1 vaut : $1"
fi

Dans cet exemple le -n évalue si le paramètre $1 est vide.

Opérateur de test Effet
= Test l'égalité
#!/bin/bash

operande1=25
operande2="25"

if [ "$operande1" = "$operande2" ]; then
  echo "Sont égaux"
fi
Cet exemple en profite pour rappeler qu'en bash, toutes les variables sont traitées comme des chaînes.
!= Test une différence
#!/bin/bash

if [ "$EUID" != 0 ]; then
  echo "Vous devez être superutilisateur" 1>&2
  exit 1
fi
Le teste de la variable globale $EUID permet de déterminer si l'utilisateur est root (seul root a un EUID à 0). A noter également la redirection de la sortie standard(1) vers la sortie d'erreur (2) avec l' expression 1>&2
-z Test si la variable est vide
#!/bin/bash
# Prompt utilisateur
echo -n "Entrez un emplacement : "

# On attend la saisie
read chemin

# Si chemin est vide
if [ -z $chemin ]; then
  echo "Vous devez renseigner un chemin." 1>&2
  exit 1
fi
Attention l'opérateur -z est placé avant l'expression à évaluer.
-n Test si la variable est non-vide

Tester des valeurs numériques

bash-shell/conditions.txt · Dernière modification: 2012/01/13 06:30 (modification externe)
 
Sauf mention contraire, le contenu de ce wiki est placé sous la licence suivante : CC Attribution-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki

Ce site contient des traces de XHTML et de CSS.