Skip to content

Stocker la comparaison de chaînes bash dans une variable

Solution:

Je suggérerais soit :

res=0; [ "$a" == "$b" ] && res=1

ou

res=1; [ "$a" == "$b" ] || res=0

Pas aussi simple que vous l’espériez, mais évite le if ... else ... fi.

Vous pouvez également utiliser le $? variable qui contient la valeur de retour de la commande précédente :

res="$( [[ $a == $b ]]; echo $? )"

Bien que cela inverserait les chiffres que vous avez donnés. Le résultat final serait le même que :

if [[ $a == $b ]]; then
  res=0
else
  res=1
fi

C’est parce que le shell interprète une valeur de retour de 0 comme vrai et 1 comme faux.

Je ne dis pas non plus que je préconise entièrement cette solution. C’est bidon et un peu flou. Mais c’est laconique et laconique c’est ce que vous avez demandé.


Tags : /

Articles Similaires

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.