mac可在wi-fi断开后自动关机,方法一用快捷指令创建“wi-fi断开关机”自动化并授予权限;方法二用终端脚本每30秒检测ssid并触发关机;方法三为菜单栏手动快速关机。

你想让Mac在离开家庭Wi-Fi网络范围、连接断开后自动关机,避免设备长时间闲置耗电或被他人误用——这需要组合系统自动化与网络状态检测,不能仅靠内置定时功能实现。
用快捷指令创建“Wi-Fi断开即关机”自动化
这是唯一能响应Wi-Fi连接状态变化的原生方案,不依赖第三方工具,但必须满足两个前提:【快捷指令需已获得“完全磁盘访问”权限】,且Mac处于已登录、未休眠状态。
第一步:打开“快捷指令”App → 点击右上角“+”新建快捷指令 → 命名为“Wi-Fi断开关机”。
第二步:点击“添加操作” → 搜索并添加“运行脚本” → 选择“Shell” → 在脚本框中粘贴以下命令:
if ! /System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport -I | grep -q "AirPort: On"; then sudo shutdown -h now; fi
第三步:点击“自动化”标签页 → 点击“创建个人自动化” → 选择“Wi-Fi” → 选中你家的Wi-Fi名称 → 触发条件设为“已断开” → 点击“下一步”。
第四步:关闭“运行前询问”,点击“下一步”→ 点击“完成”。此时系统会提示授权,按提示前往“系统设置→隐私与安全性→完全磁盘访问”中勾选“快捷指令”。
用终端命令配合网络监控脚本实现后台常驻检测
适合希望Mac在无人值守时也可靠执行关机的用户,比如放在办公室固定位置的Mac mini。该方法绕过快捷指令的登录依赖,但需手动启动脚本并保持终端窗口开启(可最小化)。
方法一:准备检测脚本
打开“终端”,输入:nano ~/wifi-off.sh → 回车,粘贴以下内容:
#!/bin/zsh
while true; do
if ! /System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport -I | grep -q "SSID: YOUR_HOME_SSID"; then
sudo shutdown -h now
fi
sleep 30
done
将 YOUR_HOME_SSID 替换为你家Wi-Fi的实际名称(注意大小写和空格),按 Control+O 保存 → 回车确认文件名 → Control+X 退出。
方法二:赋予执行权限并运行
在终端中依次执行:
chmod +x ~/wifi-off.sh
sudo ~/wifi-off.sh
输入管理员密码后,脚本即开始每30秒检查一次当前Wi-Fi是否仍为指定SSID,一旦匹配失败立即关机。【此脚本运行期间关闭终端窗口会导致检测中断】。
替代方案:用“控制中心”快速手动触发关机
如果你只是偶尔需要离家前确认关机,无需全自动,这个方法最快——它利用系统原生Wi-Fi状态菜单的实时反馈,三秒内完成判断与执行。
点按菜单栏右上角Wi-Fi图标 → 查看当前连接的网络名称 → 若显示的不是你家Wi-Fi,或显示“Wi-Fi已关闭”,立刻点按同一菜单顶部的【关机…】选项 → 在弹窗中点击“关机”。
这一步操作起来很简单,直接点两下就能完成,不需要任何设置或等待。











