OSX – 如何在执行“exit”命令后自动closuresterminal窗口。
当我完成terminal时,我想退出它。 现在我有三个select:
-
基亚尔terminal。 它会结束这个过程,但是会突然结束。 我不认为这是最好的主意。
-
呼叫退出。 我已经改变了设置,所以退出closuresterminal。 该应用程序仍然显示在Dock中打开,但没有做我想做的事情。
-
右键单击>退出。 但是,这不是terminal命令退出它。
那么现在,我应该怎样退出并closuresterminal呢? 我听说过一些关于osascript的内容,但我不太确定。 我想退出并closures,使terminal不再是开放的,既作为窗口,也作为一个过程。
在Terminal.app中
首选项>设置>shell
打开“当shell退出”select“closures窗口”
那么好的旧Command-Q怎么样?
在terminal应用程序中, 首选项 >> configuration文件选项卡。
select右边的Shell选项卡。
在closures之前,您可以select从不询问来抑制警告。
我一直在使用ctrl + d
它把你带到了你已经开始使用sqlite3命令的目的地。
在terminal窗口中,您可以键入:
kill -9 $(ps -p $PPID -o ppid=)
这会终止当前进程的父进程的terminal应用程序进程,如kill命令所示。
要从正在运行的脚本中closuresterminal窗口,您需要像这样在stream程层次结构中再添加一个级别:
kill -9 $(ps -p $(ps -p $PPID -o ppid=) -o ppid=)
你可以通过osascript
命令使用AppleScript:
osascript -e 'tell application "Terminal" to quit'
在您的代码中使用osascript
命令作为icktoofay提到: osascript -e 'tell application "Terminal" to quit'
然后,打开terminal首选项,进入设置>shell,并将“closures前提示:”设置为“从不”。 terminal现在应该完全退出(不在docker上保持打开状态),在退出前忽略提示。 如果只有一个“terminal”窗口打开,并且osascript
命令是最后一行代码,那么它应该等待之前运行的任何命令完成。
如果您在同一个窗口或后台的其他窗口中运行脚本(例如,您可能在后台运行一个命令,并继续使用其他命令的当前窗口(如果第一个命令后面跟有一个&符号) ); 小心!
如果你将osascript
代码包装在一个shell脚本文件中,那么你可以用任何简单的文件名来调用它,只要它在terminal的searchpath中(运行echo $PATH
来查看terminal在哪里查找脚本)。
我一直在使用
退出-nterminal
在我的脚本结束。 您必须将terminal设置为从不提示首选项
所以Terminal> Preferences> Settings> Shell 当shell退出时closures窗口Prompt在closures之前 Never
您也可以使用这个复杂的命令,它不会触发关于终止自己的进程的警告:
osascript -e "do shell script \"osascript -e \\\"tell application \\\\\\\"Terminal\\\\\\\" to quit\\\" &> /dev/null &\""; exit
这个命令很长,所以你可以在你的bashconfiguration文件中定义一个别名(比如quit
):
alias quit='osascript -e "do shell script \"osascript -e \\\"tell application \\\\\\\"Terminal\\\\\\\" to quit\\\" &> /dev/null &\""; exit'
这将允许您只需在terminal中键入quit
而无需任何其他设置。
osascript -e "tell application \"System Events\" to keystroke \"w\" using command down"
这模拟了CMD + w按键。
如果你想terminal完全退出你可以使用: osascript -e "tell application \"System Events\" to keystroke \"q\" using command down"
这不会给出任何错误,并使terminal干净地停下来。
如果这是一个Mac你键入“退出”,然后按回车。