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

雑学

備忘録になります。

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

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

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

注意点

-nで比較する文字列変数はダブルクォーテーション(“)で囲う必要があります。ダブルクォーテーションで囲わないと比較する文字列変数自体が無いと解釈され、期待しない動作となります。

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

# ./wrk.sh
VAR_B: 文字あり

※「文字なし」と出力するべきだが「文字あり」と出力された。

関連リンク