Negacja zmiennej boolowskiej i przypisanie jej do nowej zmiennej [duplikat]

Dec 31 2020

W skrypcie Bash chciałbym zdefiniować zmienną boolowską ydo przechowywania zanegowanej wartości innej zmiennej boolowskiej x. Poniższy skrypt,

#!/bin/bash

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

ustawia zmienną yna 1. Jak mogę zmienić y, aby falsezamiast tego oceniała ?

Odpowiedzi

3 axiac Dec 31 2020 at 06:32

Bash nie ma pojęcia wartości logicznych dla zmiennych. Wartości jego zmiennych są zawsze łańcuchami. W niektórych kontekstach można je traktować jako liczby, ale to wszystko, co może zrobić.

Możesz użyć 1i 0zamiast tego lub możesz je porównać (z =lub ==) jako ciągi z truei falsei udawać, że są logiczne. Kod będzie bardziej czytelny, ale nadal są to ciągi :-)