在 Mac OS X 中从命令行正常关闭应用程序
正常退出应用程序通常是通过适当的应用程序菜单选择“退出”来完成的,但是 Mac GUI 显然无法从 Mac OS X 的命令行访问。因此,当大多数命令行用户面临退出应用程序的需要时,他们最后使用“kill”命令终止进程并强行退出应用程序,而不是发出“软”kill。终止应用程序的一个明显问题是,虽然它确实退出了应用程序,但您可能会在该过程中丢失数据,甚至会话恢复缓存也可能不足以恢复数据。因此,只要有可能,用户通常最好优雅地退出应用程序。
虽然不是特别出名,但您可以借助 osascript 命令从命令行向任何 Mac OS X GUI 应用程序发送标准退出信号。它相当容易使用,这就是我们将在此处介绍的内容。
如何使用osascript从Mac OS X中的终端优雅地退出应用程序
再次,这将向应用程序发出标准退出信号,而不是kill(终止)信号。这也意味着如果有未保存的数据而不提示用户输入,目标应用程序将不会强行退出(除非您为 Mac OS X 启用了自动保存设置并且应用程序不会因此提示用户)。
从终端向Mac OS X 中的GUI 应用程序发送标准退出信号的基本语法如下:
"osascript -e &39;退出应用APPLICATIONNAME&39;"
例如,要从命令行退出Calendar,将APPLICATIONNAME替换为“Calendar”
"osascript -e &39;退出应用程序日历&39;"
因为日历会同步并且没有保存选项,所以当您尝试关闭应用程序时不会看到标准的保存对话框。对于有保存选项的应用程序,当 Mac OS X 禁用自动保存时,将像往常一样调用保存对话框。
使用 osascript 优雅地关闭应用程序的另一个优点是您可以提供一个实际的应用程序名称,这比完全依赖随附的进程 ID 号更容易记住并且对用户更友好杀死命令。请注意,现代版本的 Mac OS X 提供了一个改进的 kill 命令,它更加用户友好,称为 pkill。
您可以在 bash 脚本中使用它从命令行关闭应用程序,或者甚至将其修改为类似于我们前一段时间介绍的“使用 Automator 技巧退出所有打开的应用程序”的行为。