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