쉘 스크립트 (Unix)에서 터미널 창을 닫으시겠습니까?
쉘 스크립트 내에서 터미널 창을 닫는 방법이 있습니까? 일단 완료되면 .command 파일이 있습니다.
사용 exit 0
하면 스크립트가 완전히 종료됩니다.
터미널 창이 열려 있는지 여부는 사용자가 구성 할 수 있습니다. 기본값은 항상 열려있는 것입니다. 이를 변경하려면 :
Terminal.app > Preferences > Profiles > Shell
- "When the shell exists:"
> Close if the shell exited cleanly
- "Ask before closing:"
(•) Never
-- OR --
(•) Only if there are....
"셸이 깨끗하게 종료되면 닫기"를 사용하는 경우 종료 결과가 0이면 스크립트가 창을 닫고, 아무 문제가 없으면 기본값이됩니다.
모든 터미널 창을 삭제하지 않으려면 먼저 창 이름을 "Terminal"에서 다른 이름으로 변경하십시오.
echo -n -e "\ 033] 0; 내 창 이름 \ 007"
그런 다음 스크립트 끝에서 다음을 사용하십시오.
osascript -e '응용 프로그램 "터미널"을 닫으라고 알려줍니다 (이름에 "내 창 이름"이 포함 된 모든 창)'&
당신은 사용 apple script
하기 종료 을 terminal app
. 스크립트에 다음을 추가하십시오-
osascript -e 'tell application "Terminal" to quit'
그러면 앱 종료를 확인하는 팝업이 표시됩니다. 터미널 환경 설정에서 비활성화 할 수 있습니다.
또는 killall
명령을 사용 하여 앱을 종료 할 수도 있습니다 . 다음도 잘 작동합니다.
killall Terminal
노트 :
참고로 위의 명령을 스크립트에 자유롭게 추가 할 수 있으며 원하는대로 작동합니다. 그러나 몇 가지주의 사항이 있습니다. 먼저 다른 상자에서 작동하는 스크립트의 기능을 제한합니다. 둘째 , nohup
현재 실행중인 모든 명령이 .NET Framework 종료로 인해 종료되지 않도록 사용하는 것이 더 안전 합니다 Terminal app
.
이것은 나를 위해 작동합니다.
#!/bin/sh
{your script here}
osascript -e 'tell application "Terminal" to close (every window whose name contains ".command")' &
exit
이것은 .command 파일로 열린 창만 닫을 때 작동하지만 다른 터미널 창에서는 이미 실행중인 상태로 둡니다. 나는 거의 항상 sass 또는 grunt watch가 있다는 것을 알고 있으므로 터미널을 완전히 종료하고 싶지 않습니다.
closeWindow() {
/usr/bin/osascript << _OSACLOSE_
tell application "Terminal"
close (every window whose name contains "YourScriptName")
end tell
delay 0.3
tell application "System Events" to click UI element "Close" of sheet 1 of window 1 of application process "Terminal"
_OSACLOSE_
}
그러면 스크립트에 대한 터미널 창이 닫히고 창 제목이 일치하지 않는 한 다른 터미널 창은 계속 열려 있습니다. 작동하려면 터미널이 접근성 프레임 워크를 사용하도록 허용 된 애플리케이션 목록에 추가되어야합니다. 또한 반복 명령을 사용하여 터미널 창을 순환하고 시트 1에 UI 요소 "닫기"가 포함 된 모든 창 x를 닫을 수 있습니다.
이에 대한 최상의 솔루션은 Automator를 사용하여 시스템 구성 방식에 관계없이 동일한 방식으로 작동하는 진정한 OSX 응용 프로그램을 만드는 것입니다. Automator에서 쉘 스크립트를 실행하도록하거나 Automator에 쉘 스크립트 자체를 임베드 할 수 있습니다.
방법은 다음과 같습니다.
- Automator를 실행합니다 (응용 프로그램에서).
- "새 문서"를 선택하고 "문서 유형 선택"메시지가 나타나면 "응용 프로그램"을 선택합니다.
- In the left panel, select "Utilities" then "Run Shell Script".
- Type in your script commands in the workflow item in the right panel. You can either call another shell script, or just put your commands in their directly.
- Save the Application, which will be a full-fledged Mac App. You can even cut-and-paste icons from other apps to give your script some personality.
ReferenceURL : https://stackoverflow.com/questions/8798641/close-terminal-window-from-within-shell-script-unix
'Programing' 카테고리의 다른 글
프로그래밍 방식으로 새 키 저장소를 생성하려면 어떻게합니까? (0) | 2021.01.11 |
---|---|
트위터 부트 스트랩 날짜 선택기 (0) | 2021.01.11 |
StaticExtension 값을 확인할 수 없습니다. (0) | 2021.01.11 |
오류 : Phonegap에서 화이트리스트 거부 (0) | 2021.01.11 |
함수 정의에 삼중 따옴표가있는 문자열 리터럴 (0) | 2021.01.11 |