1. ホーム
  2. bash

[解決済み] シェルスクリプトでブール変数を宣言して使用するにはどうすればよいですか?

2022-03-20 01:22:34

質問

シェルスクリプトで、以下の構文でブール変数を宣言しようとしました。

variable=$false

variable=$true

これは正しいのでしょうか?また、その変数を更新したい場合、同じ構文を使用するのでしょうか?最後に、ブール変数を式として使用するための次の構文は正しいですか?

if [ $variable ]

if [ !$variable ]

解決方法は?

回答改訂版(2014年2月12日)

the_world_is_flat=true
# ...do something interesting...
if [ "$the_world_is_flat" = true ] ; then
    echo 'Be careful not to fall off!'
fi


オリジナル回答

ケーブス https://stackoverflow.com/a/21210966/89391

the_world_is_flat=true
# ...do something interesting...
if $the_world_is_flat ; then
    echo 'Be careful not to fall off!'
fi

からです。 Bashでブーリアン変数を使う

オリジナルの回答をここに掲載したのは、2014年2月12日の改訂前のコメントはオリジナルの回答にしか関係せず、改訂後の回答と関連付けると間違っているものが多いからです。例えば、Dennis Williamsonのbash builtinについてのコメント true 2010年6月2日)には、改訂版ではなく、オリジナルの解答にのみ適用されます。