能实现,需先创建“Wi-Fi断开检测”快捷指令识别断网并弹通知,再通过“Wi-Fi网络更改”个人自动化触发;接着在指令中添加300秒等待和sudo shutdown -h now关机命令,并授权完全磁盘访问。

你想让Mac在离开办公室Wi-Fi后5分钟自动关机,防止笔记本被遗忘在会议室耗电发热,又不想依赖人工操作——这个需求能用快捷指令+自动化组合精准实现,关键在于触发条件必须绑定到网络状态变化而非单纯时间。
创建断网检测快捷指令
这一步是整个逻辑的基础,必须先建立一个能识别Wi-Fi断开的动作链,不能直接跳到自动化设置。
打开“快捷指令”App → 点右上角“+”新建快捷指令 → 命名“Wi-Fi断开检测” → 点“添加操作” → 搜索并添加“获取当前Wi-Fi网络”。
添加第二个操作:搜索“如果”→ 点击“添加条件”→ 左侧选“Wi-Fi网络”,中间选“不等于”,右侧留空(代表无网络)→ 点“完成”。
在“如果”分支内添加“运行脚本”操作 → 选择“Shell”类型 → 脚本框中粘贴:osascript -e 'display notification "Wi-Fi已断开,5分钟后关机" with title "自动关机提醒"' → 这行代码会立即弹出通知,确认断网已被捕获。
【必须在此处点击右上角“…”→开启“允许运行不受信任的快捷指令”】,否则后续自动化无法调用该指令。
设置个人自动化触发器
快捷指令本身不会监听网络变化,必须靠自动化模块主动轮询触发,而“Wi-Fi网络更改”是唯一可用的原生触发条件。
回到快捷指令主界面 → 切换到“自动化”标签页 → 点“创建个人自动化” → 选择“Wi-Fi网络更改” → 点“下一步”。
勾选“当Wi-Fi断开时” → 点“下一步” → 关闭“运行前询问”(否则每次断网都会弹窗打断流程)→ 点“下一步”。
点“添加操作” → 搜索“运行快捷指令” → 选择刚创建的“Wi-Fi断开检测” → 点“下一步” → 点“完成”。
此时自动化已保存,但仅负责检测断网并弹通知,还没加入5分钟延迟和关机动作。
构建带等待的关机指令链
方法一:在原“Wi-Fi断开检测”快捷指令中追加动作(推荐,逻辑集中)
编辑该指令 → 在“如果”分支末尾添加“等待”操作 → 设为300秒(5分钟)→ 再添加“运行脚本” → Shell类型 → 粘贴:sudo shutdown -h now。
方法二:新建独立关机指令(适合调试)
新建快捷指令 → 命名“5分钟关机” → 添加“等待”300秒 → 添加“运行脚本”执行sudo shutdown -h now → 保存。
【首次运行该脚本必须授权“完全磁盘访问”:系统设置→隐私与安全性→完全磁盘访问→点锁图标解锁→勾选“快捷指令”】,否则sudo命令会被系统拦截。
将断网检测与关机动作串联
第一步:编辑之前创建的“Wi-Fi网络更改”自动化 → 点击已添加的“运行快捷指令”操作 → 将其替换为刚建好的“5分钟关机”指令(或直接修改原指令内容)。
第二步:验证触发逻辑 → 手动关闭Wi-Fi开关 → 观察是否弹出通知 → 等待5分钟 → 检查Mac是否执行关机。
第三步:若测试失败,检查系统设置→隐私与安全性→完全磁盘访问中“快捷指令”是否仍被勾选(有时系统更新后会自动取消勾选)。

















