디렉토리를 변경한 다음 실행하는 쉘 스크립트가 있습니다. 스크립트가 종료되면 디렉터리 변경 사항이 명령 프롬프트에 표시되기를 원합니다.
그래서 다음과 같이 실행합니다.
. script
그러나 이제 스크립트가 종료되면 전체 창이 종료됩니다. 이 문제를 해결할 수 있는 방법이 있나요?
내 쉘은 bash입니다.
답변1
Mac에서 이 문제를 해결하는 방법에는 두 가지가 있습니다.
A> 터미널 환경 설정으로 이동하여 [일반]을 선택하고 "셸이 완전히 종료되면 창 닫기" 확인란을 선택 취소합니다.
B> 즐겨 사용하는 텍스트 편집기를 ~/Library/Preferences/com.apple.Terminal.plist로 지정하세요.
행을 찾으십시오.
< 키>ShellExitAction< /key> < 정수>1< /정수>
1을 2로 변경하고 터미널 앱을 다시 시작하십시오.
B는 기본적으로 A와 동일하지만 수동으로 수행됩니다.
답변2
script
진술이 포함되어 있습니까 exit
? 점(소싱)은 현재 셸에서 코드를 실행한다는 점을 기억하세요. 따라서 가 있으면 exit
현재 쉘이 종료됩니다. 스크립트를 확인 exit
하고 return
.
소싱(원하는 위치 return
) 및 실행(원하는 위치 exit
) 을 감지할 수 있습니다.
[[ $BASH_SOURCE != $0 ]] && echo 'running sourced ...'