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é.