Negue uma variável booleana e atribua-a a uma nova variável [duplicar]

Dec 31 2020

Em um script Bash, gostaria de definir uma variável booleana ypara armazenar o valor negado de outra variável booleana x. O seguinte script,

#!/bin/bash

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

define a variável ycomo 1. Como posso alterar ypara que seja avaliado como false?

Respostas

3 axiac Dec 31 2020 at 06:32

O Bash não tem o conceito de valores booleanos para variáveis. Os valores de suas variáveis ​​são sempre strings. Eles podem ser tratados como números em alguns contextos, mas é tudo o que podem fazer.

Em vez disso, você pode usar 1e 0ou pode compará-los (com =ou ==) como strings com truee falsee fingir que são booleanos. O código ficará mais legível, mas eles ainda são strings :-)