Отменить логическую переменную и присвоить ее новой переменной [дубликат]

Dec 31 2020

В сценарии Bash я хотел бы определить логическую переменную yдля хранения инвертированного значения другой логической переменной x. Следующий сценарий,

#!/bin/bash

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

устанавливает переменную yв 1. Как я могу изменить ее yтак, чтобы falseвместо этого она оценивалась ?

Ответы

3 axiac Dec 31 2020 at 06:32

В Bash нет концепции логических значений для переменных. Значения его переменных всегда являются строками. В некоторых контекстах они могут обрабатываться как числа, но это все, что он может.

Вместо этого можно использовать 1и 0или сравнить их (с =или ==) как строки с trueи falseи притвориться, что они логические. Код будет более читабельным, но это все равно строки :-)