Como obter o canal atual da placa WiFi do shell?

0

Eu quero definir o canal do cartão WiMA de forma proativa com o shell script. Atualmente, tenho o seguinte script:

  • /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
    

E então, posso definir o canal do cartão Wi-Fi digitando [sudo] ./setup.sh

No entanto, gostaria de saber se existe uma maneira de esperar até que a placa WiFi defina seu canal como 1 pelo último comando iw mon0 set channel ... .

ou seja, em pseudocódigo

iw mon0 set channel 1 HT20
channel = get_wifi_current_channel
while [ "$channel"-ne 1 ]
do
    ;
done

e eu estou procurando um bom de get_wifi_current_channel

Uma coisa que eu encontrei é iwconfig mon0 :

$ iwconfig mon0
mon0    IEEE 802.11bgn  Mode:Monitor  Frequency:2.412 GHz  Tx-Power=15 dBm
...

Se não houver nada para get_wifi_current_channel , posso fazer um script ou um programa manipulando a saída de iwconfig mon0 .

    
por Jeon 01.12.2016 / 06:12

0 respostas