중첩된 if 구성에서 fi를 사용하여 각 if 블록을 닫는 것이 영향을 미치나요?

중첩된 if 구성에서 fi를 사용하여 각 if 블록을 닫는 것이 영향을 미치나요?

else 블록(참조:https://stackoverflow.com/a/15328027/1942997), 이렇게 하면 어떤 영향이 있는지, 아니면 단지 스타일의 문제인지 궁금합니다.

샘플 코드 1:

if [ condition ]; then
    echo "Not nested, condition 1 true"
    if [ other_condition ]; then
        echo "Nested, condition 2 true"
    else
        echo "Nested, condition 2 false"
    fi
fi

예제 코드 2(마지막 fi 누락 참고):

if [ condition ]; then
    echo "Not nested, condition 1 true"
    if [ other_condition ]; then
        echo "Nested, condition 2 true"
    else
        echo "Nested, condition 2 false"
fi

나는 다른 언어에서 중괄호를 사용하여 각 if 블록을 닫는 데 익숙하기 때문에 bash 스크립트에서 이 동작을 유지하는 것이 합리적이라고 생각됩니다. 제가 생각할 수 있는 유일한 영향은 가독성을 높이기 위해 스크립트 파일 크기를 약간 늘리는 것입니다.

답변1

내부를 닫지 않으면 bash로 표시했습니다 if.

SO Q에서 인용하면 다음과 같습니다.

iffiBash에서는 if 블록의 끝을 표시하는 동반 항목으로 각각을 구분 해야 하는 경우가 없습니다 .

이는 두 가지 방식으로 이해될 수 있습니다.

잘못된 방법:

Bash에는 "각 요소 는 if 블록의 끝을 표시하는 동반 요소로 구분되어야 if합니다 ." 와 같은 것이 없습니다.fi

올바른 방법:

bash에는 if 블록의 끝을 표시하는 동반자로 각각을 분리 if해야 하기 때문에 [dangling else ambiguity] 같은 것이 없습니다 .fi

관련 정보