ブール変数を否定し、それを新しい変数に割り当てます[重複]

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には、変数のブール値の概念がありません。その変数の値は常に文字列です。一部のコンテキストでは数値と​​して処理できますが、実行できるのはそれだけです。

代わりに1andを使用0するか、(with=または==)をtrueandfalseとの文字列として比較し、ブール値のふりをすることができます。コードはより読みやすくなりますが、それでも文字列です:-)