Bash で変数が空かどうかをチェックする
-
Bash で
-zオプションを使用して変数が空かどうかをチェックする -
Bash で
-nオプションを使って変数が空かどうかをチェックする - Bash で変数が空かどうかをチェックする - 空の文字列と比較する
- 変数が Bash で空かどうかを確認する-Replace メソッドで確認する
このチュートリアルでは、-z および -n オプションを指定した test コマンドを使用して、bash で変数が空であるかどうかをチェックする方法を説明します。
Bash で -z オプションを使用して変数が空かどうかをチェックする
-z オプションを指定して test コマンドを使用します。-z オプションは、文字列変数の長さが 0 であるかどうかをチェックします。
文字列変数の長さが 0 の場合、テストは true を返し、スクリプトは文字列変数が空であることを標準出力に出力します。また、文字列変数の長さが 0 でない場合、スクリプトは文字列変数が空ではないことを出力します。
以下の場合、greet 変数には文字列が割り当てられています。テスト中に、greet 変数が格納する文字列値の長さが 0 の長さであるかどうかがチェックされます。
greet 変数には 2 文字が割り当てられた文字列 Hi があるため、テストは false を返し、スクリプトは greet 変数が空ではないことを標準出力に出力します。
greet='Hi'
if [ -z "$greet" ]
then
echo "\$greet is empty"
else
echo "\$greet is not empty"
fi
出力:
$greet is not empty
greet 変数は、以下のスクリプトの空の文字列に割り当てられています。greet 変数は、test/[ コマンドを使用してチェックされ、文字列値の長さが 0 であるかどうかを確認します。
greet 変数は空の文字列に割り当てられているため、テストは true を返し、スクリプトは greet 変数が空であることを標準出力に出力します。
#!/bin/bash
greet=''
if [ -z "$greet" ]
then
echo "\$greet is empty"
else
echo "\$greet is not empty"
fi
出力:
$greet is empty
Bash で -n オプションを使って変数が空かどうかをチェックする
以下のスクリプトは、-n オプションを指定した test コマンドを使用して、文字列変数が空かどうかを確認します。-n オプションは、文字列変数の値の長さがゼロ以外であるかどうかをチェックします。
変数内の文字列の長さがゼロでない場合、テストは true を返し、変数が空ではないことを出力します。文字列変数の長さがゼロの場合、テストは false を返し、変数が空であることを出力します。
greet 変数は、以下のスクリプトの空の文字列に割り当てられています。test コマンドを使用して greet 変数をチェックするときに、格納する文字列の長さがゼロ以外の場合、false を返し、スクリプトは else セクションでコマンドを実行します。
#!/bin/bash
greet=''
if [ -n "$greet" ]
then
echo "\$greet is not empty"
else
echo "\$greet is empty"
fi
出力:
$greet is empty
greet 変数は、以下のスクリプトで 2 文字の文字列である Hi に割り当てられています。
greet 変数の文字列の長さがゼロ以外であるかどうかをチェックするテストは、greet 変数が 2 文字の文字列に割り当てられているため、true を返します。スクリプトは、greet 変数が空ではないことを標準出力に出力します。
#!/bin/bash
greet='Hi'
if [ -n "$greet" ]
then
echo "\$greet is not empty"
else
echo "\$greet is empty"
fi
出力:
$greet is not empty
Bash で変数が空かどうかをチェックする - 空の文字列と比較する
""と比較することで、値が空かどうかを確認できます。
x="Non-empty variable"
if [[ "$x" == "" ]]; then
echo "x is empty"
else
echo "x is not empty"
fi

変数が Bash で空かどうかを確認する-Replace メソッドで確認する
x が定義されている場合、式は test に置き換えられます。それ以外の場合は null に置き換えられます。
if [ ${x:+test} ]; then
echo "x is not empty"
else
echo "x is empty"
fi

