Rol*_*n C 5 linux shell node.js raspberry-pi raspbian
我有多个 wifi 网络 ssid 保存在我的 etc/wpa_supplicant/wpa_supplicant.conf 中,如下所示,我们可以从此 wpa_supplicant.conf 中删除特定网络吗
例如:在下面的网络中可以通过shell脚本删除网络myssid1,然后我可以通过node.js服务器执行
network={
ssid="myssid1"
scan_ssid=0
proto=WPA
key_mgmt=WPA-PSK
psk=5f55a9b869e9ab6d03839cae23c7243accc0ac0a12079d358328bf73ad2e0ebe
}
network={
ssid="myssid2"
scan_ssid=0
proto=WPA
key_mgmt=WPA-PSK
psk=d89660510d06bbf7691f5296daae36872d697a88876c53db7de91aa85df4f68b
}
network={
ssid="myssid3"
scan_ssid=0
proto=WPA
key_mgmt=WPA-PSK
psk=d635b33481a13b28a67e8964f58343cb19bc8c85c67cc56ee9bfe0c302914a5f
}
Run Code Online (Sandbox Code Playgroud)
Tyc*_*hus 10
使用wpa_cli你可以这样做:
1:
wpa_cli remove_network 0
Run Code Online (Sandbox Code Playgroud)
0运行后得到的 network_id在哪里wpa_cli add_network。它将删除网络并断开使用它的任何接口。
请注意,这network id不是文件中网络的顺序。您可以使用配置的网络wpa_cli list_networks
2:
wpa_cli save_config
Run Code Online (Sandbox Code Playgroud)
这将保留更改,并且将从中删除相应的网络块 etc/wpa_supplicant/wpa_supplicant.conf
Rol*_*n C -1
我能够使用以下脚本完成它:
SSID_TO_DELETE=$1
sed -n "1 !H 1 h $ { x s/[[:space:]]*network={\n[[:space:]]*ssid=\"${SSID_TO_DELETE}\"[^}]*}//g p }" /etc/wpa_supplicant/wpa_supplicant.conf > /etc/wpa_supplicant/wpa_supplicant.conf
Run Code Online (Sandbox Code Playgroud)