如何从shell中获取WiFi卡当前的通道?

如何从shell中获取WiFi卡当前的通道?

我想使用 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

相关内容