test -z で変数の存在をテストする
このステップでは、test
コマンドと -z
オプションを使用して、変数が空であるか、または設定されていないかを確認する方法を学びます。これは、変数に値があるかどうかに基づいて判断を行うスクリプトで役立ちます。
test
コマンドは、条件式を評価するために使用されます。-z
オプションは、文字列の長さがゼロであるかどうかを確認します。文字列が空である(または変数が設定されていない)場合、テストは真となります。
MY_VARIABLE
という名前の変数が設定されているかどうかをテストしてみましょう。まず、この変数が設定されていないことを確認します。
以下のコマンドを入力し、Enter キーを押します。
unset MY_VARIABLE
unset
コマンドは、変数を削除します。次に、test -z
を使用して MY_VARIABLE
が空であるかどうかを確認します。これを echo
と組み合わせて、テストの結果を表示します。&&
演算子は、最初のコマンドが成功した場合(真の値を返す場合、test
では条件が満たされた場合)のみ、2 番目のコマンドを実行します。
以下のコマンドを入力し、Enter キーを押します。
test -z "$MY_VARIABLE" && echo "MY_VARIABLE is empty or not set"
MY_VARIABLE
を削除したばかりなので、test -z "$MY_VARIABLE"
の条件は真(変数が空)であり、echo
コマンドが実行されます。
以下の出力が表示されるはずです。
MY_VARIABLE is empty or not set
次に、MY_VARIABLE
に値を設定しましょう。
以下のコマンドを入力し、Enter キーを押します。
MY_VARIABLE="Hello"
再度、同じ test -z
コマンドを実行します。
以下のコマンドを入力し、Enter キーを押します。
test -z "$MY_VARIABLE" && echo "MY_VARIABLE is empty or not set"
今回は、MY_VARIABLE
には "Hello" という値があるため、空ではありません。test -z "$MY_VARIABLE"
の条件は偽であり、echo
コマンドは 実行されません。
今回は、echo
コマンドからの出力は表示されません。
これは、test -z
を使用して変数が空であるか、または設定されていないかを確認する方法を示しています。これは、シェルスクリプトの条件分岐ロジックで使用される基本的な概念です。