如何在 Mac OS 中从命令行触发警报对话框弹出窗口

在 Mac 上从命令行触发警告对话框

您是否曾希望通过终端在 Mac 上弹出对话框警报?事实证明,您可以使用总是有用的 osascript 命令,它允许执行 AppleScript从终端。对于那些在 MacOS 命令行上花费大量时间的人来说,这可能是一个很棒的小技巧,可以在特定任务完成时通知您,甚至可以作为脚本的一部分包含在内。这是我最喜欢的简单终端技巧之一的视觉方法,即口头当命令行任务完成时宣布

让我们回顾一下高级 Mac 用户如何从命令行在 MacOS GUI 中触发警告对话框。您可以选择指定一个规范应用程序来触发弹出式警报出现在其中,或者,也许更好的是,在 Mac OS X 中最重要的应用程序中触发警报对话框。

是的,这适用于现有的每个 macOS 或 Mac OS X 版本,因此这里不应该有任何兼容性问题。

如何在 Mac OS 中弹出对话框警告

也许最有用的对话框警报是从任何地方都可见的,因此可以发送到任何最重要的应用程序。这可确保不会错过警告框。

在 Mac 上最前面的应用程序中触发对话框警告框的语法如下:

osascript -e '告诉应用程序(最前面应用程序的路径作为文本)显示对话框“Hello from osxdaily.com”按钮 {"OK"} with icon stop'

生成的弹出警告框如下所示:

在 Mac 上从命令行触发提醒对话框

例如,当命令行中的任务完成时,您可以使用它在最前面的应用程序中触发一个对话框。假设我们正在运行一个 python 脚本,并希望在它完成时有一个警告框通知我们,这种用例的语法可能如下所示:

python MagicScript.py && osascript -e '告诉应用程序(最前面应用程序的路径作为文本)显示对话框“脚本已完成”按钮 {"OK"} 带有警告图标'

该示例会在 Python 完成运行“MagicScript.py”后,在 Mac OS X GUI 最前面的应用程序中触发一个对话框,显示“脚本已完成”并带有黄色警告图标。您可以选择其他图标,例如停止、注意、警告,甚至可以根据需要指定自定义图标的路径。

虽然您可以指定一个应用程序、系统事件或 SystemUIServer,但选择更广泛的最前面的应用程序可以让警报对话框窗口出现在屏幕上,无论哪个应用程序位于最前面。让我们涵盖触发特定应用程序的对话框警报,因为这也可能是可取的。

在特定应用程序中触发对话框警报

要向特定应用程序发送对话框或警报,只需指定有问题的应用程序名称,如下所示:

通过命令行在 Mac OS Finder 中触发警告对话框:
osascript -e '告诉应用“Finder”显示对话框“Hello from osxdaily.com”'

通过命令行在终端应用程序中触发警报对话框:
osascript -e '告诉应用程序“终端”显示对话框“Hello from osxdaily.com”'

通过命令行在 Safari 中触发警报对话框:
osascript -e '告诉应用“Safari”显示对话框“Hello from osxdaily.com”'

通过命令行触发系统事件的警报对话框:
osascript -e 'tell app "System Events" to display dialog "Howdy Doo"'

您可以指定任何应用程序以这种方式发送警报,但对于我们中的许多人来说,更广泛的前端或系统事件可能是更有用的选择。

如果一般的弹出对话框触发器过于干扰,您可能会喜欢 使用终端通知器向 Mac 上的通知中心发送警报,终端通知器是第三方解决方案,允许命令行消息出现在 Mac OS 的通用通知中心。一个侵入性更小的选择是 在 Terminal Dock 图标上触发通知标记,尽管这对于许多用户的需求来说可能太微妙了。

无论如何,这是通过命令行将视觉警报对话框触发到 Mac OS 图形界面的基本概述。如果需要,您可以通过更复杂地使用 AppleScript 和 osascript 进行更深入的研究,包括与对话框的交互影响接下来发生的事情,但这是一个更复杂的主题,最好在它自己的文章中提供。有兴趣了解有关使用 AppleScript 编写脚本的更多信息的用户可以查看脚本编辑器应用程序附带的文档,该文档非常全面和详细。

有任何有趣的方法来使用这个提示,或者知道另一种方法可以从命令行触发对话框进入 Mac OS 的 GUI?请在评论中告诉我们。