当我完成终端时,我想退出它。现在,我有三个选择:
killall终端。它将结束这个过程,但却是突然的。我不认为这是最好的主意。
致电退出。我已经更改了设置,因此退出关闭终端。该应用程序仍然在Dock中显示为打开,并且不执行我想要它做的事情。
右键单击>退出。但是,这不是退出它的终端命令。
现在,我应该退出并关闭终端的方式是什么?我听说过osascript,但我不太确定。我想退出并关闭,以便终端不再作为窗口和进程打开。
答案 0 :(得分:162)
偏好设置>个人资料> (选择个人资料)>外壳
on'当shell退出时'选择'关闭窗口'
答案 1 :(得分:29)
好老的Command-Q怎么样?
答案 2 :(得分:28)
答案 3 :(得分:9)
我一直在使用ctrl + d
。它会把你带到你首先启动sqlite3命令的目的地。
答案 4 :(得分:8)
在终端窗口中,您可以输入:
kill -9 $(ps -p $PPID -o ppid=)
这将终止终端应用程序进程,该进程是当前进程的父进程的父进程,如kill命令所示。
要从正在运行的脚本中关闭终端窗口,您需要在流程层次结构中再增加一个级别,如下所示:
kill -9 $(ps -p $(ps -p $PPID -o ppid=) -o ppid=)
答案 5 :(得分:8)
实际上,您应该在终端上设置一个配置,当终端启动时,按⌘ + ,,您将看到以下屏幕:
然后按shell标签,您将在下面的屏幕中看到:
现在为当外壳退出时选择Close if the shell exited cleanly
。
通过每次使用exit
命令进行上述配置,终端将关闭但不会退出。
答案 6 :(得分:7)
您可以通过osascript
命令使用AppleScript:
osascript -e 'tell application "Terminal" to quit'
答案 7 :(得分:4)
osascript -e "tell application \"System Events\" to keystroke \"w\" using command down"
这模拟 CMD + w 按键。
如果您希望终端完全退出,您可以使用:
osascript -e "tell application \"System Events\" to keystroke \"q\" using command down"
这不会产生任何错误,并使终端干净利落。
答案 8 :(得分:3)
您也可以使用此复杂命令,该命令不会触发有关终止其自身进程的警告:
osascript -e "do shell script \"osascript -e \\\"tell application \\\\\\\"Terminal\\\\\\\" to quit\\\" &> /dev/null &\""; exit
此命令很长,因此您可以在bash配置文件中定义别名(例如quit
):
alias quit='osascript -e "do shell script \"osascript -e \\\"tell application \\\\\\\"Terminal\\\\\\\" to quit\\\" &> /dev/null &\""; exit'
这样您就可以在终端中输入quit
,而无需进行任何其他设置。
答案 9 :(得分:2)
在代码中使用osascript
命令,如icktoofay所述:osascript -e 'tell application "Terminal" to quit'
然后,打开终端首选项,转到设置> Shell,并将“关闭前提示:”设置为“从不”。终端现在应该完全退出(不在码头中保持打开状态)并在退出前忽略提示。如果您只打开了一个终端窗口并且osascript
命令是最后一行代码,它应该等待您之前运行的任何命令。
如果您在后台运行相同窗口或其他窗口中的脚本,这将不太理想(例如,您可以在后台运行命令,并在遵循第一个命令时继续使用当前窗口执行其他命令通过&符号);小心!
如果将osascript
代码包装在shell脚本文件中,您可以使用您提供的任何精简文件名来调用它 - 只要它在终端的搜索路径中(运行{{1}查看终端查找脚本的位置)。
答案 10 :(得分:1)
我一直在使用
退出-n终端
在我的脚本结束时。您必须将终端设置为从不在首选项中提示
所以终端>偏好>设置>贝壳 当shell退出时 关上窗户 关闭前提示 从未
答案 11 :(得分:0)
cat ~/exit.scpt
command + w
关闭标签页 tell application "Terminal"
set WindowNum to get window count
if WindowNum = 1 then
quit
else
tell application "System Events" to keystroke "w" using command down
end if
end tell
就像vi ~/.bashrc
或zshrc
(其他什么?)
添加它:
alias exit="osascript ~/exit.scpt"
答案 12 :(得分:0)
我在这里尝试了几种答案。无论我如何尝试,总能找到一个提示用户关闭终端的用例。
由于我的脚本很简单(drutil -drive 2 tray open
-打开特定的DVD驱动器),因此用户不需要在脚本运行时需要查看“终端”窗口。
我的解决方案是将脚本转换为应用程序,该应用程序在不显示终端窗口的情况下运行脚本。额外的好处是,任何已打开的终端窗口都保持打开状态,如果没有打开,则脚本结束后终端不会保持驻留状态。似乎根本无法启动Terminal来运行bash脚本。
我按照以下说明将脚本转换为应用程序:https://superuser.com/a/1354541/162011
答案 13 :(得分:-3)
如果这是Mac,请输入'exit',然后按返回。