처음에는 “Bash Roulette”를 연주하는 것과 같이 약간 재미있었습니다.하지만 이제는 오래되었습니다.
0이 아닌 코드로 종료되는 터미널의 모든 명령은 터미널 창을 닫습니다.
아마도 set -e
터미널 터미널이있는 어딘가에 bash 스크립트를 설정 했다고 들었습니다 .
나는 확인했다 .bash_profile
/ .bashrc
/ .profile
및처럼은 보이지 않는 set -e
존재입니다.
다른 명백한 범인이 있습니까?
답변
참으로 참으로 set -e
문제가되었습니다.
내가 찾은 방식 set -e
은bash -lx
가장 좋은 방법은 다음을 사용하는 것입니다.
bash -lx > lx.log 2>&1
그런 다음 해당 로그 파일을 열고 검색하십시오 set
…
일단 당신이 그 길을 찾으면 그 set -e
줄을 제거 할 수 있으며 문제는 사라져야합니다! (기계를 다시 시작하는 것이 좋습니다.)
필자의 경우 set -e
.bash_profile이 소스 파일에 있지만 행은 .bash_profile 자체에 없었습니다.
답변
그냥 문제를 해결하려면 포함 set +e
당신에 .bashrc
– 상기 끝.
파고 갈 수 있습니다. 다른 곳이 많을 set -e
수도 있지만 그 일을 많이 처리 할 것입니다.
그러나 set -e
가 귀하의 일부인 $PROMPT_COMMAND
경우 위의 내용이 작동하지 않습니다. printf '%s\n' "$PROMPT_COMMAND"
그 안에 무엇이 있는지 보십시오 .