OSX - 执行"exit"命令后如何自动关闭终端窗口.

dar*_*eel 95 macos terminal

当我完成终端时,我想退出它.现在,我有三个选择:

  1. 基拉尔终点站.它将结束这个过程,但却是突然的.我不认为这是最好的主意.

  2. 致电退出.我已经更改了设置,因此退出关闭终端.该应用程序仍然在Dock中显示为打开,并且不执行我想要它做的事情.

  3. 右键单击>退出.但是,这不是退出它的终端命令.

那么现在,我应该退出并关闭终端的方式是什么?我听说过osascript,但我不太确定.我想退出并关闭,以便终端不再作为窗口和进程打开.

Duk*_*uke 174

在Terminal.app中

首选项>配置文件>(选择配置文件)> Shell.

on'当shell退出'选择'关闭窗口'

  • 在较新版本的OS X中,可以在"首选项>配置文件>(选择配置文件)> Shell"下找到此选项. (11认同)
  • 您还可以选择所有配置文件,然后一次性对所有配置文件进行更改。 (4认同)
  • 在 macOS Sierra 10.13.5 中,还有“如果 shell 干净退出则关闭”选项。此选项也可能存在于早期版本的操作系统中。 (3认同)

hol*_*eek 28

好老的Command-Q怎么样?

  • 是的,我打算输入“ Command”,但它以Ctrl的形式出现。我会说这是PEBBAF的情况(大脑和指尖之间存在问题)。 (2认同)

Bla*_*ise 28

在终端应用程序中,首选项 >> 配置文件选项卡.

选择右侧的Shell选项卡. 在此输入图像描述

您可以在关闭前选择" 永不询问"以禁止显示警告.

  • 我通过`当shell退出时实现了这个:`"关闭窗口" (5认同)

Ame*_*icA 11

实际上,你应该在你的终端上设置一个配置,当你的终端按下+ ,然后你会看到下面的屏幕:

在此输入图像描述

然后按shell选项卡,您将看到以下屏幕:

在此输入图像描述

现在选择Close if the shell exited cleanly外壳退出时.

通过上面的配置每次使用exit命令终端将关闭但不会退出.


GOT*_*O 0 10

在终端窗口中,您可以键入:

kill -9 $(ps -p $PPID -o ppid=)
Run Code Online (Sandbox Code Playgroud)

这将终止终端应用程序进程,该进程是当前进程的父进程的父进程,如kill命令所示.

要从正在运行的脚本中关闭终端窗口,您需要在流程层次结构中再增加一个级别,如下所示:

kill -9 $(ps -p $(ps -p $PPID -o ppid=) -o ppid=) 
Run Code Online (Sandbox Code Playgroud)

  • 仅供参考,此解决方案也会杀死其他终端窗口. (6认同)

ick*_*fay 9

您可以通过以下osascript命令使用AppleScript :

osascript -e 'tell application "Terminal" to quit'
Run Code Online (Sandbox Code Playgroud)


kal*_*fun 9

我一直在用ctrl + d.它会把你带到你首先启动sqlite3命令的目的地.


Dav*_* P. 5

您还可以使用这个复杂的命令,它不会触发有关终止其自身进程的警告:
osascript -e "do shell script \"osascript -e \\\"tell application \\\\\\\"Terminal\\\\\\\" to quit\\\" &> /dev/null &\""; exit

quit该命令相当长,因此您可以在 bash 配置文件中定义一个别名(例如):
alias quit='osascript -e "do shell script \"osascript -e \\\"tell application \\\\\\\"Terminal\\\\\\\" to quit\\\" &> /dev/null &\""; exit'

这将允许您简单地输入quit终端,而无需摆弄任何其他设置。


小智 5

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"

这不会产生任何错误,并且可以使终端干净地停止。