【使用例紹介】文字列比較演算子(0文字):-z【シェルスクリプト】

雑学

備忘録になります。

# cat wrk.sh
VAR_A="A"
if [ -z "$VAR_A" ]; then
    echo "VAR_A: 文字なし"
else
    echo "VAR_A: 文字あり"
fi

VAR_B=""
if [ -z "$VAR_B" ]; then
    echo "VAR_B: 文字なし"
else
    echo "VAR_B: 文字あり"
fi

# ./wrk.sh
VAR_A: 文字あり
VAR_B: 文字なし

注意点

-nで比較する文字列変数はダブルクォーテーション(“)で囲う必要があります。ダブルクォーテーションで囲わないとスペースを含む場合、複数変数を指定したと解釈され、期待しない動作となります。

# cat wrk.sh
VAR_A="A B C"
if [ -z $VAR_A ]; then
    echo "VAR_A: 文字なし"
else
    echo "VAR_A: 文字あり"
fi

# ./wrk.sh
./wrk.sh: 2 行: [: 引数が多すぎます
VAR_A: 文字あり

関連リンク