如何从命令行关闭 OSX 中的终端?

86 terminal command-line exit macos

为什么“退出”不关闭 Mac OS X 上的 Terminal.app 窗口?

$ exit
logout

[Process completed]
Run Code Online (Sandbox Code Playgroud)

有没有办法不使用鼠标关闭窗口?

Ama*_*dan 104

Terminal.app 显示的窗口只是您选择在其中运行的进程的前端 - 在您的情况下,是一个 Unix shell。当您退出 shell 时,Terminal.app 默认情况下不会关闭窗口,因此您可以在完成后检查您运行的任何命令的输出。

您可以在此处更改您的偏好

终端首选项 -> 设置 -> 外壳:

要么

  1. 始终关闭窗口,无论 shell 的退出状态是什么
  2. 如果外壳干净地退出,请关闭窗口
  3. 保持窗口打开(默认)

除此之外,您可以(几乎)始终使用 Cmd-W 关闭 OSX 中的窗口,因此即使它没有自动关闭,您也不需要鼠标。

另一个提示:我喜欢按 Ctrl-D 而不是键入 exit。两个键对五个。

  • 在 Yosemite 中,它是:首选项 -> 配置文件 -> 外壳 ->“当外壳退出时”...外壳是您在常规中选择的任何外壳 -> 启动时打开... (14认同)

小智 24

Command+ Q-> 关闭应用程序/进程。

Command+ W-> 关闭窗口/实例


小智 14

就在这里。例如,您可以使用 AppleScript 来实现它:

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

第一个窗口始终是当前活动的窗口。那就是你想要关闭的。

在关闭窗口之前,终端可能会询问您是否真的要关闭窗口。这取决于您的设置。您可能选择了“仅当 shell 干净地退出或没有其他进程正在运行时才关闭窗口……”。(这可能是默认设置。)在这种情况下,添加& exit到命令会立即关闭窗口,而无需询问。

osascript -e 'tell application "Terminal" to close first window' & exit
Run Code Online (Sandbox Code Playgroud)

  • 这“几乎”是正确的,但实际上“第一个窗口”“并不”总是运行命令的窗口。 (2认同)

小智 12

实际上,对于此要求,您应该为终端设置一些配置。按照以下说明操作,您只需使用exit命令即可关闭终端。

当终端启动时,按?+,打开偏好窗口。然后你会看到下面的屏幕:

在此处输入图片说明

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

在此处输入图片说明

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

您的终端已准备好使用exit命令退出。

  • 感谢您发布适用于 MacOS Catalina 的更新答案。 (自 v.10.15.6 起)。 (2认同)