如何在进程退出时自动关闭MacOS终端

如果您是MacOS中shell脚本的粉丝,您可能已经注意到运行shell脚本会在完成后留下一个无用的终端窗口。您可以从终端设置中修复此问题。

只有当您在bash之外启动shell脚本时,例如通过在Finder中单击它或通过设置自定义热键来打开程序,此方法才有效。否则,您将被带回命令提示符。您总是可以使用KILLALL终端应用程序从脚本中自动关闭终端应用程序,但这将关闭所有打开的终端窗口,因此这并不理想。

在配置文件设置中更改此行为

从Dock或您的应用程序文件夹中打开终端应用程序,然后按Command+逗号打开设置。

在“设置”窗口中,切换到“配置文件”选项卡。默认情况下,应选择默认配置文件(位于顶部的配置文件)。在右侧的设置中,点击“Shell”选项卡,然后点击“When the Shell Exit”下拉菜单。

下拉菜单默认为“不要关闭窗口”,但您需要将其更改为“如果shell干净退出,则关闭”。

您也可以每次关闭它,但这样,如果进程以非零退出状态退出,您仍然会收到一条错误消息。请记住,您可能需要使用exit命令显式退出脚本,才能在所有情况下获得此行为。

不过,如果从Finder启动,退出命令会自动附加到脚本中。

或者,使用iTerm

iTerm2是MacOS的流行终端替代品,它会在shell脚本退出时自动关闭窗口。如果您已经使用iTerm作为默认终端,您可能已经注意到,从Finder启动的shell脚本仍然使用常用的终端应用程序打开。这意味着,除非您将脚本设置为使用iTerm打开,否则您仍然会遇到相同的问题。

您可以通过右键单击Finder中的脚本,然后选择“获取信息”来更改在其中打开的应用程序脚本。

将有一个用于更改此脚本打开内容的下拉列表。将其设置为iTerm,然后按“全部更改”将此更改应用于每个脚本。

默认情况下,如果您已经打开了iTerm窗口,它将在单独的选项卡中启动,而不是在单独的窗口中启动,完成后该选项卡将自动关闭。

相关文章