Как увидеть текущий интерфейс / скорость Wi-Fi

Я вижу скорость загрузки и выгрузки для всех интерфейсов, использующих glances, в network раздел мы можем увидеть Rx/s а также Tx/s столбцы, где я могу увидеть значение в Mbps,

Однако я хочу сохранить это значение в переменной. Есть ли другая команда, которая дает текущую скорость (bps, или же Kbps, или же Mbps) чтобы я мог сохранить это значение в переменной в скрипте bash?

Я хочу сделать это для wlan0 интерфейс.

1 ответ

Для этого нет ни одной команды. Тем не менее, вы можете использовать это:

eval $( \
    iwconfig wlan0 | \
    egrep -o 'Bit Rate=[0-9]+ [^ ]+' | \
    sed -e 's/ /_/;s/=/="/;s/$/"/' \
    )
echo $Bit_Rate

В моей системе в настоящее время я получаю:

$ eval $(iwconfig wlan0 | egrep -o 'Bit Rate=[0-9]+ [^ ]+' | sed -e 's/ /_/;s/=/="/;s/$/"/')
$ echo $Bit_Rate
54 Mb/s

iwconfig wlan0 выводит кучу информации о wlan0 (попробуйте и посмотрите).

затем egrep Матчи "Bit Rate=", за которыми следуют 1 или более цифр, пробел и 1 или более незаполненных. Из-за -o вариант, egrep выводит только соответствующую строку.

sed затем меняет первый пробел на подчеркивание, '=' в '="'и конец строки '"', производя строку как Bit_Rate="54 Mb/s",

eval затем интерпретирует эту строку в вашей текущей оболочке.

для дальнейшего образования читайте

for i in iwconfig egrep sed bash ; do  
    man $i
done
Другие вопросы по тегам