If en bash

De knowledge
Révision datée du 7 décembre 2025 à 16:10 par Jpinon (discussion | contributions) (Page créée avec « J'oublie toujours comment on fait un IF en bash. Je ne dois pas le faire assez souvent et, de plus c'est assez exotique. Le cas typique est le test d'un code retour:<syntaxhighlight lang="bash"> cat file.txt if $? == 0 ; then echo "success $?" elif $? == 1 ; then echo "error $?" else echo "very strange error $?" fi </syntaxhighlight>Attention aux espaces dans la clause <code>[[ ]]</code> il doit y en avoir après <code></code> et avant <cod... »)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)
Aller à la navigation Aller à la recherche

J'oublie toujours comment on fait un IF en bash. Je ne dois pas le faire assez souvent et, de plus c'est assez exotique.

Le cas typique est le test d'un code retour:

cat file.txt

if [[ $? == 0 ]]; then
   echo "success $?"
elif [[ $? == 1 ]]; then
   echo "error $?"
else
   echo "very strange error $?"
fi

Attention aux espaces dans la clause [[ ]] il doit y en avoir après [[ et avant ]] mais aussi autour des opérateurs (ici ==)

Les opérateurs sont les classiques ==, !=, <, >=, et <= pour ce qui est de nombres et -eq, -ne, -lt, -le, -gt et -ge, pour leur équivalant en "string".

Attention
Attention.png POur ceux qui font du perl c'est exactement l'inverse. == pour les chaines et eq pour les nombres.