Mac可通过快捷指令+AppleScript+afplay实现每日定时关机前自动播放提示音:先用AppleScript调高音量、语音提醒并延迟2秒,再用afplay播放系统或自定义音效;最后调用System Events执行安全关机。

你想让Mac在每天定时关机前自动播放一段提示音,提醒自己保存文档、关闭应用,避免数据丢失——系统原生不支持“关机前自动播音”这一组合动作,但可通过快捷指令+AppleScript+系统声音三者联动实现,关键在于把提示音嵌入自动化流程的触发环节。
用快捷指令实现关机前播放指定提示音
这一步必须使用AppleScript调用系统声音播放功能,不能只靠“播放声音”操作,否则无法在无用户交互的自动化中生效。
打开“快捷指令”App → 点击右上角“+”新建快捷指令 → 命名为“关机前提示音” → 点击“添加操作”。
搜索并添加“运行AppleScript” → 在脚本框中粘贴以下内容:
osascript -e 'set volume output volume 50' -e 'say "请注意,电脑将在5分钟后关机" using "Alex"' -e 'delay 2' -e 'do shell script "afplay /System/Library/Sounds/Glass.aiff"
【必须用afplay命令播放系统音效文件路径,不能选“播放声音”操作,否则定时自动化中会静音失败】
点击右上角“下一步” → 再次点击“完成”。
将提示音指令与定时关机绑定
现在要把刚创建的提示音指令,作为关机前的前置动作插入到自动化流程中。
切换到“自动化”标签页 → 点击“创建个人自动化” → 选择“特定时间” → 设定时间为每天22:55(比目标关机时间早5分钟)→ 关闭“运行前询问”开关。
点击“添加操作” → 搜索并添加你刚命名的“关机前提示音”快捷指令。
再次点击“添加操作” → 搜索“运行AppleScript” → 在脚本框中粘贴:
osascript -e 'tell app "System Events" to shut down'
这行脚本调用的是macOS标准关机流程,会弹出未保存文档确认框(取决于当前应用是否响应),比sudo shutdown更安全。
替换为自定义音频文件(可选)
方法一:把你的MP3或M4A提示音文件拖入访达的“~/Library/Sounds/”文件夹(若该文件夹不存在,请手动创建)。
方法二:在上一步的AppleScript中,将afplay后的路径改为:
afplay "$HOME/Library/Sounds/your-alert.m4a"
注意:文件名不能含空格或中文,建议用英文加短横线,例如“shutdown-notice.m4a”。
【音频文件必须是AAC或AIFF格式,MP3需先用“语音备忘录”导出为M4A才可被afplay稳定识别】

















