如何在macOS中编写脚本实现以太网与WiFi的互切?
在macOS中编写脚本切换以太网与WiFi的方法
当然可以!在macOS中,我们可以借助系统自带的networksetup命令行工具来实现网络偏好的切换,这和你熟悉的Windows批处理逻辑类似,完全可以写成脚本一键完成以太网和WiFi的互相切换。
第一步:确认你的网络接口名称
不同设备的以太网、WiFi接口名称可能略有差异(比如部分机器的以太网叫"Thunderbolt Ethernet",而不是默认的"Ethernet"),先运行以下命令查看所有可用网络服务:
networksetup -listallnetworkservices
在输出结果里找到你的以太网和Wi-Fi对应的名称,记下来后面要用到。
核心命令说明
networksetup是macOS专门用于配置网络的命令行工具,切换网络的核心操作就是启用/禁用对应接口:
- 禁用指定网络接口:
networksetup -setnetworkserviceenabled "接口名称" off - 启用指定网络接口:
networksetup -setnetworkserviceenabled "接口名称" on
自动切换脚本示例
下面是一个可以自动判断当前网络状态并切换的脚本,把它保存为switch_network.sh:
#!/bin/bash # 替换成你自己机器上的以太网和WiFi接口名称 ETH_INTERFACE="Ethernet" WIFI_INTERFACE="Wi-Fi" # 获取当前以太网的启用状态 ETH_STATUS=$(networksetup -getnetworkserviceenabled "$ETH_INTERFACE") if [ "$ETH_STATUS" = "Enabled" ]; then # 当前以太网开启,切换到WiFi echo "正在切换至Wi-Fi..." networksetup -setnetworkserviceenabled "$ETH_INTERFACE" off networksetup -setnetworkserviceenabled "$WIFI_INTERFACE" on else # 当前以太网关闭,切换到以太网 echo "正在切换至以太网..." networksetup -setnetworkserviceenabled "$WIFI_INTERFACE" off networksetup -setnetworkserviceenabled "$ETH_INTERFACE" on fi
脚本使用步骤
- 打开文本编辑器(比如系统自带的TextEdit),粘贴上面的代码,记得把
ETH_INTERFACE和WIFI_INTERFACE的值替换成你之前查到的接口名称,然后保存为switch_network.sh(注意保存时要选“纯文本”格式)。 - 打开终端,导航到脚本所在的文件夹(比如脚本在桌面,就输入
cd ~/Desktop)。 - 给脚本添加执行权限:
chmod +x switch_network.sh
- 运行脚本完成切换:
./switch_network.sh
额外小技巧
如果觉得每次打开终端运行麻烦,你可以用Automator把这个脚本做成一个App,双击就能执行;或者给脚本设置一个键盘快捷键,这样切换网络会更高效。
内容的提问来源于stack exchange,提问作者Ryan Athey




