!['set -e'를 입력하면 bash가 종료됩니다.](https://linux55.com/image/109665/'set%20-e'%EB%A5%BC%20%EC%9E%85%EB%A0%A5%ED%95%98%EB%A9%B4%20bash%EA%B0%80%20%EC%A2%85%EB%A3%8C%EB%90%A9%EB%8B%88%EB%8B%A4..png)
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
.