0이 아닌 코드로 종료되는 터미널의 모든 명령은 터미널 창을 닫습니다. 약간 재미있었습니다.하지만 이제는 오래되었습니다. 0이 아닌 코드로

처음에는 “Bash Roulette”를 연주하는 것과 같이 약간 재미있었습니다.하지만 이제는 오래되었습니다.

0이 아닌 코드로 종료되는 터미널의 모든 명령은 터미널 창을 닫습니다.

아마도 set -e터미널 터미널이있는 어딘가에 bash 스크립트를 설정 했다고 들었습니다 .

나는 확인했다 .bash_profile/ .bashrc/ .profile및처럼은 보이지 않는 set -e존재입니다.

다른 명백한 범인이 있습니까?



답변

참으로 참으로 set -e문제가되었습니다.

내가 찾은 방식 set -ebash -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"그 안에 무엇이 있는지 보십시오 .


답변