我想使用 shell 脚本来提前设置 WiFI 卡的通道。目前我有以下脚本:
/etc/network/interfaces
# tell wlan0 will be controlled manually iface wlan0 inet manual
setup.sh
iw dev wlan0 interface add mon0 type monitor # wait until mon0 is successfully created ip link show mon0 2>/dev/null 1>/dev/null while [ $? -ne 0 ] do ip link show mon0 2>/dev/null 1>/dev/null done ifconfig mon0 up # wait until mon0 is activated ifconfig mon0 2>/dev/null 1>/dev/null while [ $? -ne 0 ] do ifconfig mon0 2>/dev/null 1>/dev/null done iw mon0 set channel 1 HT20
然后我可以通过输入来设置 WiFI 卡的频道[sudo] ./setup.sh
不过,我想知道是否有办法等到 WiFi 卡实际上通过最后一个命令将其通道设置为 1 iw mon0 set channel ...
。
即伪代码
iw mon0 set channel 1 HT20
channel = get_wifi_current_channel
while [ "$channel"-ne 1 ]
do
;
done
我正在寻找一个合适的get_wifi_current_channel
我发现的一件事是iwconfig mon0
:
$ iwconfig mon0
mon0 IEEE 802.11bgn Mode:Monitor Frequency:2.412 GHz Tx-Power=15 dBm
...
如果没有get_wifi_current_channel
,我可以制作一个脚本或程序来操纵 的输出iwconfig mon0
。