# touch $$
# gzip $$
# gzip --test $$.gz
# echo $?
0
# OUT=$(gzip --test $$.gz)
# echo $OUT
# if [ -z $OUT ] ; then echo $$ ; fi
26521
# if [ -n $OUT ] ; then echo $$ ; fi
26521
#
~からbash(1)
-z string True if the length of string is zero. string -n string True if the length of string is non-zero.
混乱しています。どのようにゼロになりますか?そして同時にゼロではありませんか?キーに値(使用済み)があるかどうかを確認するにはbash
?
ベストアンサー1
[ .. ]
他のすべてのコマンドと同じ規則に従います。噴射適用可能です。OUT
空または設定されていない場合は、空の引数で$OUT
なくても何も拡張されません。
したがって、および[ -n $OUT ]
に展開され、空の文字列ではないかどうかをテストします。はい、テストはtrueを返します。[
-n
]
[
-n
$OUT
他の場所と同様に見積もりが必要です。
if [ -n "$OUT" ]; then ...
望むより:いつ二重引用符が必要ですか? そしてテストと条件BashGuideから。