![nmcli:扫描 WiFi 网络的正确方法](https://linux22.com/image/1183007/nmcli%EF%BC%9A%E6%89%AB%E6%8F%8F%20WiFi%20%E7%BD%91%E7%BB%9C%E7%9A%84%E6%AD%A3%E7%A1%AE%E6%96%B9%E6%B3%95.png)
我正在编写一个需要切换 WiFi 网络的脚本。我应该如何扫描我想要连接的 WiFi 是否可用?
我尝试了以下操作:
nmcli dev wifi list
问题:它列出了以前扫描的网络,其中包括可用和不可用的网络。
nmcli dev wifi rescan; sleep 10; nmcli dev wifi list;
问题 1:它只是启动扫描并在扫描在后台运行时退出。我找不到如何检测扫描是否完成的方法。所以我使用了 10 秒的额外等待时间。
问题 2:即使扫描完成后(10 秒后),它仍然列出最近关闭的 WiFi 网络。
nmcli radio wifi off ; sleep 1; nmcli radio wifi on; sleep 4; nmcli dev wifi list
这是最糟糕的意外。它仍然显示已关闭的 WiFi 网络。
以 root 身份运行命令没有任何区别。
nmcli 有什么问题?我做错了什么?
系统信息:
OS:
Ubuntu 20.04 Desktop.
Driver:
Kernel driver in use: rtl8821ce
Laptop:
hp 15 dy1751ms
WiFi
product: RTL8821CE 802.11ac PCIe Wireless Network Adapter
vendor: Realtek Semiconductor Co., Ltd.
physical id: 0
bus info: pci@0000:01:00.0
logical name: wlo1
serial: xx:xx:xx:xx:xx:xx
width: 64 bits
clock: 33MHz
capabilities: bus_master cap_list ethernet physical wireless
configuration: broadcast=yes driver=rtl8821ce ip=192.168.10.12 latency=0 multicast=yes wireless=IEEE 802.11bgn
resources: irq:137 ioport:3000(size=256) memory:8050000-8050ffff
答案1
回复很晚了,但也许对发现这一点的人有用:使用hidden yes
,如
nmcli dev wifi connect SSID hidden yes
假设您已配置 SSID。即使上次重新扫描未列出您的 SSID,此操作仍会继续。如果不可用,则只会超时。