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 부분이 일치하는 모든 항목과 항상 일치합니다.

관련 정보