#intro
if [ -n "$1" ]
then
echo 666
else
echo 555
fi
exit;
事実はしたいのですが、echo 555
最初のブロックでは何もしたくないのですが、どうすればいいですか?直接削除できないことがわかりましたecho 666
。
答え1
ただ使用アクションなし:
if [ -n "$1" ]; then
:
else
echo 555
fi
exit
またはロジックを逆にしてください。
if [ -z "$1" ]; then
echo 555
fi
exit
答え2
[ -n "$1" ] && echo "666" <= For if part
[ -n "$1" ] || echo "555" <= For else part
答え3
!
条件文内でif文を使用してif文を反転することができます(これは「not」演算子と呼ばれ、結果の逆を取ることを意味します)。これは次のとおり[ -n "$1" ]
です。[ ! -n "$1" ]
そのセクションと同じですelse
。
-z
論理反対の代わりにこのオプションを使用することも-n
有効-n
ですが、通常は!
else部分が一致するすべての項目と常に一致します。