我的路由器离我的工作空间很远,但我有一条以太网电缆延伸到那段距离。当我将它插入笔记本电脑时,有没有办法自动打开笔记本电脑的热点,以便我的手机可以连接到更强的 WiFi 信号?
此外,当以太网连接断开时,需要关闭热点。
答案1
用于nmcli d|grep -E "^eth0"|grep connected
判断电缆是否连接。
编写如下脚本
AP=0
while :; do
if nmcli d|grep -E "^eth0"|grep connected ; then
if [[ AP -eq 0 ]]; then
# bring hotspot up
AP=1
fi
else
if [[ AP -eq 1 ]]; then
# turn hotspot off
AP=0
fi
fi
sleep 2
done
答案2
根据 Bob Johnson 的回答,我建议使用nmcli device show [ethernetdevice] | grep IP4.ADDRESS
,它与语言无关,并且可以在连接电缆但不提供 IP 地址时阻止将 WiFi 保持为 AP:
#!/bin/bash
AP=0
while :;
do
if nmcli device show eth0 | grep IP4.ADDRESS ; then
if [[ AP -eq 0 ]]; then
nmcli device disconnect wlan0
nmcli connection up 'Shared WiFi connection name'
AP=1
fi
else
if [[ AP -eq 1 ]]; then
nmcli connection down 'Shared WiFi connection name'
nmcli device connect wlan0
AP=0
fi
fi
sleep 5
done
在哪里:
eth0
是 ifname 标识的以太网设备,大多数情况下是 eth0(不是我的),您可以通过nmcli device
在终端中输入来获取设备的正确名称。wlan0
是ifname识别的WiFi设备。Shared WiFi connection name
是作为 AP 共享 WiFi 的连接的名称(并不总是等同于 SSID,这取决于如何配置)。
将脚本添加到 shell 中的自动启动应用程序。它对我来说非常有效。