シェルで変数が空かどうかを判断するにはどうすればよいですか?
シェルスクリプトでは、ある変数が空かどうか確認するために二つの方法が使える。
- if文で判断する
if [ -z "$variable" ]; then
echo "变量为空"
else
echo "变量不为空"
fi
上のコードでは、-zは変数が空かどうかを判定するのに使われます。もし変数が空ならば、「変数は空です」と出力され、そうでなければ「変数は空ではありません」と出力されます。
- {{二かっこを使用し判定する}}
if [[ -z $variable ]]; then
echo "变量为空"
else
echo "变量不为空"
fi
ダブルブラケット[[ ]]は、より強力かつ柔軟な条件判斷文法を提供します。-zも変数が空かどうかを判断するために使用できます.
条件判定を [ ] および [[ ]] で行う場合には、以下の点に注意が必要です
- 変数名の前後に引用符を追加して、変数値に空白などの特殊文字が含まれる場合に判断ミスによるエラーを防ぐ。
- 文字列の等価性を判定する場合、==と=のどちらも利用できるが、[ ]内の条件判定では=を使用する必要があるのに対し、[[ ]]内の条件判定では=または==を使用することができる。
- 条件分岐の末尾にはfiを入れる