bash
버전 에서 4.4.12
다음을 입력하면:
set -e
명령 프롬프트에서 쉘이 종료되고 를 반환합니다 128
.
set -u
날씨 좋은데 왜 이런 일이 일어날까요?
답변1
예를 들어 확장의 일부로 0이 아닌 종료 상태를 반환하는 명령이 있는 경우 PROMPT_COMMAND
(프롬프트를 인쇄하기 전에 실행됨) bash
이 옵션을 설정하면 셸이 즉시 종료됩니다.errexit
set -e
DEBUG
또 다른 가능성은 0이 아닌 종료 상태를 반환하는 트랩 세트 가 있다는 것입니다 . 그러나 트랩이 DEBUG
실행됩니다.앞으로Enter를 누른 후 즉시 쉘이 종료되지 않고 set -e
다음 명령을 시작하기 전에 쉘이 종료되도록 명령을 호출합니다.
set -u
쉘 옵션을 설정하면 됩니다 nounset
. 이 옵션을 사용하면 설정되지 않은 변수를 $@
sum 으로 확장하려고 하면 쉘에서 오류가 발생합니다 $*
. set -e
유효하지 않으면 쉘이 종료되지 않습니다 .
그리고 set -u
효력을 발휘하다그리고PS1
쉘에서 변수 설정 해제~ 할 것이다errexit
설정 옵션을 사용한 후 즉시 종료하십시오 set -e
.