Bashリファレンスマニュアルには、
【文字列】
と
[ -n文字列]
文字列の長さが 0 でない場合、どちらもtrueを返します
しかし、事実はそうではありません
greet=
if [ $greet ]; then
echo '1'
else
echo '2'
fi
if [ -n $greet ]; then
echo '1'
else
echo '2'
fi
出力は
2
1です
Bashリファレンスマニュアルはちょうど言う
-n string
string
True if the length of string is non-zero.
では、2 つの形式の実際の違いは何ですか?