Niega una variable booleana y asígnala a una nueva variable [duplicar]

Dec 31 2020

En un script de Bash, me gustaría definir una variable booleana ypara almacenar el valor negado de otra variable booleana x. El siguiente guión,

#!/bin/bash

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

establece la variable yen 1. ¿Cómo puedo cambiar ypara que se evalúe en su falselugar?

Respuestas

3 axiac Dec 31 2020 at 06:32

Bash no tiene el concepto de valores booleanos para variables. Los valores de sus variables son siempre cadenas. Pueden manejarse como números en algunos contextos, pero eso es todo lo que pueden hacer.

Puede usar 1y en su 0lugar o puede compararlos (con =o ==) como cadenas con truey falsey pretender que son booleanos. El código será más legible pero siguen siendo cadenas :-)