'set -e'를 입력하면 bash가 종료됩니다.

'set -e'를 입력하면 bash가 종료됩니다.

bash버전 에서 4.4.12다음을 입력하면:

set -e

명령 프롬프트에서 쉘이 종료되고 를 반환합니다 128.

set -u날씨 좋은데 왜 이런 일이 일어날까요?

답변1

예를 들어 확장의 일부로 0이 아닌 종료 상태를 반환하는 명령이 있는 경우 PROMPT_COMMAND(프롬프트를 인쇄하기 전에 실행됨) bash이 옵션을 설정하면 셸이 즉시 종료됩니다.errexitset -e

DEBUG또 다른 가능성은 0이 아닌 종료 상태를 반환하는 트랩 세트 가 있다는 것입니다 . 그러나 트랩이 DEBUG실행됩니다.앞으로Enter를 누른 후 즉시 쉘이 종료되지 않고 set -e다음 명령을 시작하기 전에 쉘이 종료되도록 명령을 호출합니다.

set -u쉘 옵션을 설정하면 됩니다 nounset. 이 옵션을 사용하면 설정되지 않은 변수를 $@sum 으로 확장하려고 하면 쉘에서 오류가 발생합니다 $*. set -e유효하지 않으면 쉘이 종료되지 않습니다 .

그리고 set -u효력을 발휘하다그리고PS1쉘에서 변수 설정 해제~ 할 것이다errexit설정 옵션을 사용한 후 즉시 종료하십시오 set -e.

관련 정보