Как увидеть текущий интерфейс / скорость 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