macOS 환경에서 셸 스크립트를 자주 사용하는 사용자라면, 스크립트 실행 후 불필요하게 남아있는 터미널 창 때문에 불편함을 느낀 적이 있을 것입니다. 이러한 문제는 터미널 설정 변경을 통해 간단히 해결할 수 있습니다.
이 방법은 주로 Finder에서 직접 클릭하거나 단축키를 통해 스크립트를 실행하는 경우에 유효하며, bash 환경 외부에서 스크립트를 시작할 때 적용됩니다. 만약 터미널 내에서 명령어를 통해 스크립트를 실행하면, 스크립트 종료 후 명령 프롬프트로 돌아갑니다. 스크립트 내에서 killall Terminal
명령어를 사용하여 터미널 앱을 강제로 종료할 수도 있지만, 이는 현재 열려있는 모든 터미널 창을 닫아버리므로 실용적인 해결책은 아닙니다.
터미널 프로필 설정을 통한 동작 변경
먼저 Dock 또는 응용 프로그램 폴더에서 터미널 앱을 실행하고, Command + ,
단축키를 눌러 설정 창을 엽니다.
설정 창에서 ‘프로필’ 탭으로 이동합니다. 기본 프로필 (목록 최상단)이 선택되어 있는지 확인한 후, 우측 설정 메뉴에서 ‘Shell’ 탭을 클릭합니다. 그런 다음 ‘Shell exits’ 드롭다운 메뉴를 확인합니다.
기본적으로 ‘창을 닫지 않음’으로 설정되어 있는 드롭다운 메뉴를 ‘쉘이 완전히 종료되면 닫기’로 변경해야 합니다.
이 설정을 사용하면 스크립트 실행 후 항상 터미널 창이 자동으로 닫히지만, 만약 스크립트가 0이 아닌 종료 상태로 끝나는 경우 에러 메시지가 표시될 수 있습니다. 이러한 경우에도 터미널 창을 자동으로 닫히도록 하려면 스크립트 마지막에 exit
명령어를 명시적으로 추가해야 합니다.
Finder에서 스크립트를 시작하는 경우, exit
명령어는 자동으로 스크립트에 추가됩니다.
iTerm2 사용 대안
iTerm2는 macOS에서 널리 사용되는 터미널 대체 프로그램이며, 셸 스크립트 종료 시 창을 자동으로 닫아주는 기능을 제공합니다. 만약 이미 iTerm2를 기본 터미널로 사용 중이라면, Finder에서 실행된 셸 스크립트가 여전히 기본 터미널 앱에서 실행된다는 것을 알 수 있습니다. 이는 스크립트가 iTerm2에서 실행되도록 명시적으로 설정해야 해결할 수 있는 문제입니다.
Finder에서 스크립트 파일을 마우스 우클릭한 후 ‘정보 가져오기’를 선택하여 ‘다음으로 열기’ 설정을 변경할 수 있습니다.
이 스크립트를 실행할 응용 프로그램을 변경하는 드롭다운 메뉴가 있습니다. iTerm2를 선택한 후 ‘모두 변경’ 버튼을 눌러 변경 사항을 모든 스크립트 파일에 적용할 수 있습니다.
iTerm2를 사용하면 스크립트 실행 시 이미 열려 있는 창에 새로운 탭으로 실행되며, 완료되면 자동으로 탭이 닫힙니다.