Bash で変数が設定されているかどうかをチェックする
-
Bash で
-v
を使用して変数が設定されているかどうかを確認する -
Bash で
-z
を使用して変数が設定されているかどうかを確認する - Bash で Null 値を割り当てることにより、変数が設定されているかどうかを確認する
最初に変数を定義し、それに値を与えて変数を設定する必要があります。
値は null にすることができますが、割り当てる必要があります。未設定変数と null 変数には違いがあります。
ほとんどの一般的なプログラミング言語とは異なり、Bash には変数が設定されているかどうかを判断するための組み込み関数がありません。それでも、そうする機能はあります。
Bash スクリプティングでは、-v var
または -z $var
オプションを if
条件付きコマンドの式として使用して、変数が設定されているかどうかを確認できます。
[[-v Name_Of_Variable]]
[[-z Name_Of_Variable]]
変数が設定されている場合、ブール式は True
を返し、そうでない場合は False
を返します。
Bash で -v
を使用して変数が設定されているかどうかを確認する
ここで、-v Variable
を使用して変数が設定されているかどうかを確認します。
値が 5
の変数 X
を定義しましょう。変数が設定されている場合は、Variable 'X' is set.
と返されます。
#!/bin/bash
X=5
if [[ -v X ]];
then
echo "Variable 'X' is set."
else
echo "Variable 'X' is not set."
fi
出力:
Variable 'X' is set.
変数を定義して値を割り当てたので、期待どおりに機能しました。別の例を見てみましょう。
#!/bin/bash
if [[ -v Y ]];
then
echo "Variable 'Y' is set."
else
echo "Variable 'Y' is not set."
fi
出力:
Variable 'Y' is not set.
変数 Y
を定義しなかったため、出力には変数 Y
が設定されていないことが示されます。
Bash で -z
を使用して変数が設定されているかどうかを確認する
ここで、-z Variable
を使用して変数が設定されているかどうかを確認します。
値が 5
の変数 X
を定義しましょう。変数が設定されている場合は、Variable 'X' is set.
を返します。
#!/bin/bash
X=5
if [[ -z ${X} ]];
then
echo "Variable 'X' is not set."
else
echo "Variable 'X' is set."
fi
ここで、最初の if
条件は False
を返し、2 番目は True
を返し、Variable 'X' is set.
が表示されます。
出力:
Variable 'X' is set.
変数を定義して値を割り当てたため、期待どおりに機能しました。別の例を考えてみましょう。
#!/bin/bash
if [[ -z ${X} ]];
then
echo "Variable 'X' is not set."
else
echo "Variable 'X' is set."
fi
出力:
Variable 'X' is not set.
Bash で Null 値を割り当てることにより、変数が設定されているかどうかを確認する
ここで、-v Variable
を使用して変数が設定されているかどうかを確認します。
null
値を持つ変数 X
を X
として定義しましょう。もし変数が設定されていれば、Variable 'X' is set.
と返されます。
#!/bin/bash
X=""
if [[ -v X ]]; then
echo "Variable 'X' is set."
else
echo "Variable 'X' is not set."
fi
出力:
Variable 'X' is set.
ご覧のとおり、変数に null
値が割り当てられている場合でも、チェック後に set
として表示されます。