applescript调用display notification并设urgency为critical可突破勿扰模式,终端用osascript -e亦可实现;还可创建专用专注模式,仅放行终端/脚本编辑器通知并开启“允许紧急情况绕过”。

Mac勿扰模式默认屏蔽所有通知弹窗,但你希望在保持全局静音的同时,仍能接收某个自动化脚本(如提醒喝水、备份完成、日志异常告警)触发的特定视觉弹窗,这就需要绕过勿扰模式的拦截机制,让系统识别该弹窗为“高优先级”或“白名单来源”。
用AppleScript调用Notification Center并标记为紧急
这是最稳定、无需第三方工具、且能被勿扰模式识别为“可突破静音”的方式。系统原生支持通过AppleScript发送带urgency参数的通知,设为critical时,即使勿扰模式开启,也会以横幅形式强制弹出。
1、打开“脚本编辑器”应用(位于“应用程序”文件夹内)。
2、粘贴以下代码,将"备份已完成"和"Time Machine"替换为你脚本的实际标题与子标题:
tell application "System Events"
display notification "备份已完成" with title "Time Machine" subtitle "所有卷均已归档" sound name "Hero"
3、点击左上角“三角形运行按钮”,测试是否在勿扰模式下仍弹出横幅——若成功,说明系统已认可该通知的突破权限。
4、将此段代码保存为.scpt文件,再在你的Shell脚本或Automator工作流中用osascript /路径/到/通知.scpt调用即可。
【注意:sound name必须是系统内置音效名(如Hero、Blow、Glass),填错会导致整个通知静默失败】
用terminal命令触发高优先级通知
如果你的脚本运行在终端环境(如bash/zsh),直接用osascript -e一行式调用更轻量,适合集成进crontab或GitHub Actions Runner。
方法一:基础横幅(勿扰模式下可见)osascript -e 'display notification "磁盘空间低于10%" with title "系统警报" subtitle "请清理缓存文件"'
方法二:带声音+关键标识(突破勿扰更强)osascript -e 'display notification "数据库同步失败" with title "运维中心" subtitle "连接超时,已重试3次" sound name "Funk"'
这一步操作起来很简单,复制命令后粘贴进终端回车就能看到效果。无需安装任何依赖,macOS 12及以上原生支持。
创建专用专注模式仅放行脚本通知
当你的脚本通知频率高、来源固定,且你不想影响其他通知逻辑时,可新建一个“运维警报”专注模式,把脚本通知绑定为唯一白名单入口。
第一步:新建专注模式
1、打开“系统设置” → “专注模式” → 点击右下角“+”号 → 选择“自定”。
2、命名为“运维警报”,图标选⚠️,描述写“仅接收脚本触发的关键告警”。
第二步:配置通知白名单
3、在“允许的通知”区域点击“添加应用” → 找到并勾选“终端” → 再点击“添加应用” → 勾选“脚本编辑器”。
4、向下滚动到“选项”,关闭“允许重复通知”,但【务必开启“允许紧急情况绕过”】——这是让脚本弹窗穿透勿扰模式的核心开关。
第三步:绑定触发方式
5、在“自动启用”区域点击“添加自动启用条件” → 选择“时间” → 设为“每天 00:00 至 23:59”(即常驻)。
6、返回专注模式总览页,点击“运维警报”右侧开关立即启用。
此后,只要你的脚本通过终端或脚本编辑器发出通知,就会无视当前是否处于勿扰模式,强制弹出横幅。











