シェルでnull判定の書き方

シェルでnull判定の書き方

シェルスクリプトでのnull判定は、変数が未設定または空であるかどうかを確認するために使用されます。
一般的に、Bashや他のシェルでは以下の方法が用いられます。

1. 変数が設定されているかどうかの判定

変数が設定されているかどうかを確認するには、-z オプションを使用します。

  • z は、文字列が空であれば真を返します。

以下のコードは、変数 VAR が空であるかどうかを確認し、空であればメッセージを表示します。

if [ -z "$VAR" ]; then
  echo "VARは空です"
else
  echo "VARには値が設定されています"
fi

ここで、"$VAR" は二重引用符で囲まれているため、変数が未設定の場合でもエラーが発生しません。

2. 変数が設定されているかどうかの判定

変数が設定されているかどうかを確認するには、-n オプションを使用します。

  • n は、文字列が空でなければ真を返します。
if [ -n "$VAR" ]; then
  echo "VARには値が設定されています"
else
  echo "VARは空です"
fi

3. 変数が設定されているかどうかを確認する場合の例

変数が設定されているかどうかだけを確認するには、以下のように -v オプションを使用します。

  • v は、変数が設定されている場合に真を返します。
if [ -v VAR ]; then
  echo "VARは設定されています"
else
  echo "VARは設定されていません"
fi

4. デフォルト値を設定する方法

変数が未設定または空の場合にデフォルト値を設定するには、${VAR:-default} 構文を使用します。
これにより、VAR が設定されていない場合や空の場合に default を使用します。

echo "${VAR:-デフォルト値}"

5. 空でないことを確認する場合の例

変数が設定されているかつ空でないことを確認するには、次のように書くことができます。

if [ "$VAR" ]; then
  echo "VARは設定されており、空ではありません"
else
  echo "VARは未設定または空です"
fi

これらの方法を使って、シェルスクリプト内で変数のnull判定を行うことができます。
どの方法を使うかは、具体的な要件や使用するシェルのバージョンに応じて選択してください。