Bash de A à Z

Chapitre 3 / 6

Les conditions

La structure if

age=20
if [ "$age" -ge 18 ]; then
  echo "Majeur"
else
  echo "Mineur"
fi

On peut enchaîner avec elif :

if [ "$note" -ge 10 ]; then
  echo "Admis"
elif [ "$note" -ge 8 ]; then
  echo "Rattrapage"
else
  echo "Recalé"
fi

Les opérateurs de test

CatégorieOpérateurs
Nombres-eq -ne -lt -le -gt -ge
Chaînes= !=, -z (vide) / -n (non vide)
Fichiers-f (fichier) -d (dossier) -e (existe) -r/-w/-x
if [ -f "/etc/passwd" ]; then echo "Le fichier existe"; fi
if [ -z "$1" ]; then echo "Aucun argument fourni"; fi

💡 Guillemete toujours tes variables dans un test : si $x est vide, [ "$x" = "y" ] reste valide, alors que [ $x = y ] provoque une erreur.

Combiner des conditions

if [ "$age" -ge 18 ] && [ "$pays" = "FR" ]; then
  echo "Majeur en France"
fi

&& = ET, || = OU.

Le cas de figure : case

Plus lisible qu'une longue série de elif :

case "$1" in
  start)   echo "Démarrage" ;;
  stop)    echo "Arrêt" ;;
  restart) echo "Redémarrage" ;;
  *)       echo "Usage : $0 {start|stop|restart}" ;;
esac

Le *) est le cas par défaut (aucun motif ne correspond).

Ensuite : répéter des actions avec les boucles.