if-thenブロックでは何もしたくないが、elseブロックでは何かをしたい場合はどうすればよいですか?

if-thenブロックでは何もしたくないが、elseブロックでは何かをしたい場合はどうすればよいですか?
#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部分が一致するすべての項目と常に一致します。

関連情報