OS X Lion 종료 시 Terminal.app을 자동으로 닫으려면 어떻게 해야 합니까?

OS X Lion 종료 시 Terminal.app을 자동으로 닫으려면 어떻게 해야 합니까?

저는 최근에 OS X Lion이 설치된 새 Mac을 구입했고 필요에 맞게 조정하고 있습니다.

Tiger와 Snow Leopard에서 했던 것처럼 기본 설정을 사용하여 터미널에서 자동 닫기를 구성하려고 했지만 작동하지 않습니다. "셸이 완전히 종료되면 닫기"를 설정했는데 를 입력하면 exit창이 닫히지만 Terminal.app은 여전히 ​​열려 있습니다. 메뉴가 표시되고 alt+를 누르면 tab실행되는 것을 볼 수 있습니다.

어떤 제안이 있으십니까?

답변1

이 옵션은 터미널 응용 프로그램을 닫은 적이 없습니다.

다른 옵션의 제목은 다음과 같습니다.닫기창문그리고닫지 마세요창문(중요성내), 이 설정은 닫기만 의미한다는 점을 분명히 합니다.창문, 전체가 아님애플리케이션.


쉘에 대해 다음을 정의할 수 있습니다(예 : ~/.bash_profilefor :).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에 대한 테스트는 이 코드가 터미널 내부에서 실행될 때만 적용되는지 확인합니다.

이 스크립트는 비동기식으로 실행되므로 해당 스크립트가 포함된 터미널이 닫히기 전이나 후에 스크립트가 실행될 수 있습니다(일반적으로 나중에 실행되지만). 사용자가 터미널을 종료하여 이 터미널이 닫히면 스크립트가 실행될 때 터미널이 더 이상 실행되지 않을 수 있습니다. :

  1. 먼저 터미널이 아직 실행 중인지 확인합니다. 그렇지 않다면 아무 일도 일어나지 않습니다.
  2. 열려 있는 터미널이 없거나 현재 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"

아름답죠?

관련 정보