편집: 이 질문은 중복으로 표시됩니다. 이것이 더 큰 규모에서는 사실일 수 있지만 Kusarananda가 제공한 답변을 통해 내 선택 사항을 더 잘 이해할 수 있었습니다.
쉘 스크립트 내에서 구문 오류가 발생하면 스크립트 해석이 반드시 종료되지 않고 스크립트의 다음 줄에서 계속됩니다. 스크립트를 해석할 때 이러한 구문 오류 수를 캡처할 수 있는 방법이 있습니까?
나는 컴파일이 완료된 후 오류 및 경고 수를 나타내는 컴파일러 보고서와 같은 것을 정말 좋아합니다. Linux 셸에만 적용됩니다.
답변1
예. 대부분의 쉘은 내부 명령이 오류를 생성하는 경우 현재 스크립트를 종료할 수 있습니다. 이는 일반적으로 다음을 통해 수행됩니다.
set -e
다음을 통해 닫을 수 있습니다.
set +e
편집하다: 질문을 잘못 이해했습니다. Bash 및 기타 셸에는 -n
스크립트를 실행하지 않고 구문 오류를 확인하는 옵션도 있습니다.
$ bash -n script.sh
-e
옵션은 -n
POSIX에 의해 설명됩니다. 의 경우 -n
표준에는 다음과 같이 명시되어 있습니다.
쉘은 명령을 읽어야 하지만 실행해서는 안 됩니다. 이는 쉘 스크립트 구문 오류를 확인하는 데 사용될 수 있습니다. 대화형 쉘은 이 옵션을 무시할 수 있습니다.
밝히다: 이 답변은 POSIX 적합성을 확인하는 것이 아니라 구문 확인에 관한 것입니다. 자체 의미 체계로 POSIX를 확장하는 셸은 -n
확장된 의미 체계로 작성된 스크립트의 구문(사용법)을 계속 확인할 수 있습니다. 이는 쉘이나 스크립트의 POSIX 적합성에 대해 아무 것도 말하지 않고 단지 쉘 스크립트가 문제의 쉘에 대해 구문적으로 올바른지 여부만 알려주는 것입니다.