在 Mac OS X 中从命令行正常关闭应用程序

OS X 中的终端 强行退出应用程序,而不是发出一次“软”杀戮。终止应用程序的明显问题是,虽然它确实退出了应用程序,但您可能会在该过程中丢失数据,甚至会话恢复缓存也可能不足以恢复数据。因此,只要有可能,用户通常最好优雅地退出应用程序。

虽然不是特别出名,但您可以借助 osascript 命令从命令行向任何 Mac OS X GUI 应用程序发送标准退出信号。它相当易于使用,这就是我们将在此处介绍的内容。

如何使用 osascript 从 Mac OS X 的终端中优雅地退出应用程序

同样,这将向应用程序发出标准退出信号,而不是终止(终止)信号。这也意味着如果有未保存的数据而不提示用户输入,目标应用程序将不会强行退出(除非您为 Mac OS X 启用了自动保存设置并且应用程序不会因此提示用户)。

从终端向 Mac OS X 中的 GUI 应用程序发送标准退出信号的基本语法如下:

osascript -e '退出应用“APPLICATIONNAME”'

例如,要从命令行退出 Calendar,将 APPLICATIONNAME 替换为“Calendar”

osascript -e '退出应用“日历”'

因为日历会同步并且没有保存选项,所以当您尝试关闭应用程序时不会看到标准的保存对话框。对于有保存选项的应用,当 Mac OS X 禁用自动保存时,保存对话框将像往常一样被召唤。

使用 osascript 优雅地关闭应用程序的另一个优点是您可以提供一个实际的应用程序名称,与完全依赖 kill 命令附带的进程 ID 号相比,它更容易记住并且对用户更友好。请注意,现代版本的 Mac OS X 提供了一个改进的 kill 命令,它更加用户友好,称为 pkill.

您可以在 bash 脚本中使用它从命令行关闭应用程序,或者甚至将其修改为类似于“Quit All Open Apps” 使用我们前一段时间介绍过的 Automator 技巧。