저는 최근에 OS X Lion이 설치된 새 Mac을 구입했고 필요에 맞게 조정하고 있습니다.
Tiger와 Snow Leopard에서 했던 것처럼 기본 설정을 사용하여 터미널에서 자동 닫기를 구성하려고 했지만 작동하지 않습니다. "셸이 완전히 종료되면 닫기"를 설정했는데 를 입력하면 exit
창이 닫히지만 Terminal.app은 여전히 열려 있습니다. 메뉴가 표시되고 alt+를 누르면 tab실행되는 것을 볼 수 있습니다.
어떤 제안이 있으십니까?
답변1
이 옵션은 터미널 응용 프로그램을 닫은 적이 없습니다.
다른 옵션의 제목은 다음과 같습니다.닫기창문그리고닫지 마세요창문(중요성내), 이 설정은 닫기만 의미한다는 점을 분명히 합니다.창문, 전체가 아님애플리케이션.
쉘에 대해 다음을 정의할 수 있습니다(예 : ~/.bash_profile
for :).bash
function exit {
osascript -e 'tell application "Terminal" to quit'
}
그런 osascript
다음 종료하기 전에 확인이 필요하지 않은 애플리케이션 목록에 추가합니다(기본 설정 > 설정 > 셸). exit
차단 프로그램이 실행 중인 다른 탭이 없으면 터미널을 종료하려면 입력하세요 .
exit
물론 일반 과 구분하기 위해 다른 이름을 지정할 수 있습니다 . 나는 quit
이것을 좋아한다.
답변2
마지막 터미널/쉘을 닫은 후 터미널을 종료하려면 종료할 때 쉘이 AppleScript를 실행하도록 할 수 있습니다.
# Quit Terminal when this shell exists if there are no other terminals open.
if [ "$TERM_PROGRAM" == "Apple_Terminal" ]; then
quit_terminal_when_no_terminals_remain() {
osascript -e 'tell application "Terminal" to if running and (count every tab of every window whose tty is not "'"$(tty)"'") is 0 then quit'
}
trap quit_terminal_when_no_terminals_remain EXIT
fi
Apple_Terminal에 대한 테스트는 이 코드가 터미널 내부에서 실행될 때만 적용되는지 확인합니다.
이 스크립트는 비동기식으로 실행되므로 해당 스크립트가 포함된 터미널이 닫히기 전이나 후에 스크립트가 실행될 수 있습니다(일반적으로 나중에 실행되지만). 사용자가 터미널을 종료하여 이 터미널이 닫히면 스크립트가 실행될 때 터미널이 더 이상 실행되지 않을 수 있습니다. :
- 먼저 터미널이 아직 실행 중인지 확인합니다. 그렇지 않다면 아무 일도 일어나지 않습니다.
- 열려 있는 터미널이 없거나 현재 tty에 대한 터미널만 있는 경우에만 종료됩니다. 현재 쉘이 연결된 tty 장치인 "$(tty)" 탭 외에 다른 탭이 있는지 확인한다.
EXIT를 트랩하는 다른 셸 코드를 호출하면 서로 간섭하게 됩니다. 해결책은 다른 함수를 호출하는 또 다른 함수를 생성하고 "the_other_function EXIT"를 트랩하여 셸이 종료될 때 모든 것을 호출하는 것입니다.
그런데 언제나 그랬듯이 이 기능이 중요하다면 Apple에 개선 요청을 제출해 주세요. 더 이상 열려 있는 창이 없을 때 터미널을 종료하도록 기본 설정을 요청하세요.https://bugreport.apple.com/
답변3
깔끔한 솔루션으로 시도해보십시오.
open -a /Applications/Utilities/Terminal.app *.py 또는 open -b com.apple.terminal *.py
시작된 셸의 경우 기본 설정 > 셸로 이동하여 오류가 없으면 종료되도록 설정할 수 있습니다.
이것은 많은 스크립트/명령을 거의 동시에 실행해야 할 때 자주 사용합니다.
그게 다야.
답변4
훨씬 더 쉬운 우아한 솔루션은 .bash_profile에 다음 명령으로 별칭을 설정하는 것입니다.
alias quit="killall Terminal"
아름답죠?