왜 하나에는 세미콜론을 추가하고 다른 하나에는 추가하지 않습니까?
결과는 같습니다
코드 1
if [ "a" == "a" ]
then
echo "true"
fi
코드 2
if [ "a" == "a" ];
then
echo "true";
fi
두 번째 코드 부분의 세미콜론은 불필요한가요?
세미콜론은 언제 필요합니까?
답변1
세미콜론은 줄 끝이 누락된 경우에만 필요합니다.
if [ "a" == "a" ] ; then echo "true" ; fi
세미콜론이 없으면 구문 오류가 발생합니다.
견적에 대한 귀하의 질문을 이해하지 못합니다. 좀 더 자세히 알아볼 수 있나요?
(그런데 =
not을 사용하는 것이 ==
이식성이 뛰어나고 POSIX와 호환됩니다.)
답변2
일부 사람들(예: /me)이 다음 스타일을 좋아하기 때문에 세미콜론이 자주 사용됩니다.
if [ ... ]; then
doit-it-then
else
doit-it-else
fi
따라서 then-키워드를 조건행에 배치하면 초로바가 쓴 것처럼 새로운 명령이 시작되기 때문에 필요하다.
조건부 검사의 따옴표와 관련하여 일반적으로 변수에 아무것도 할당되지 않은 경우 예외가 발생하지 않도록 변수와 함께 사용됩니다. 이는 더 안전한 스타일이고 불필요해 보일 수 있지만 쉘 프로그래밍에서도 때때로 프로그램이 변수에 내용을 할당할 수 없는 상황에 놓이게 됩니다. 그러면 빈 문자열이 비교되기 때문에 명령이 계속 작동합니다.