Nier une variable booléenne et l'assigner à une nouvelle variable [dupliquer]

Dec 31 2020

Dans un script Bash, j'aimerais définir une variable booléenne ypour stocker la valeur négative d'une autre variable booléenne x. Le script suivant,

#!/bin/bash

x=true
y=$(( ! "${x}" ))
echo "${y}"

définit la variable ysur 1. Comment puis-je changer ypour qu'il soit évalué à la falseplace?

Réponses

3 axiac Dec 31 2020 at 06:32

Bash n'a pas le concept de valeurs booléennes pour les variables. Les valeurs de ses variables sont toujours des chaînes. Ils peuvent être traités comme des nombres dans certains contextes, mais c'est tout ce qu'il peut faire.

Vous pouvez utiliser 1et à la 0place ou vous pouvez les comparer (avec =ou ==) sous forme de chaînes avec trueet falseet faire comme si elles étaient booléennes. Le code sera plus lisible mais ce sont toujours des chaînes :-)