« If en bash » : différence entre les versions

De knowledge
Aller à la navigation Aller à la recherche
(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... »)
 
mAucun résumé des modifications
 
Ligne 17 : Ligne 17 :
|+Attention
|+Attention
|[[Fichier:Attention.png|sans_cadre|53x53px]]
|[[Fichier:Attention.png|sans_cadre|53x53px]]
|POur ceux qui font du perl c'est exactement l'inverse. == pour les chaines et eq pour les nombres.
|Pour ceux qui font du perl c'est exactement l'inverse. == pour les chaines et eq pour les nombres.
|}
|}

Version actuelle datée du 7 décembre 2025 à 16:10

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.