Получите качество сигнала в% от iwconfig - PullRequest
0 голосов
/ 22 февраля 2019

первое сообщение о помощи .... Я пытаюсь получить качество сигнала в% от команды iwconfig ... Я начал с этой команды, но она возвращает текст 'значение сигнала'

iwconfig wlan0 | grep Quality | awk -F '=|/|=[  ]' '{print $2,$3}'

70 70  Signal level

Я хотел бы просто получить 100% в результате

wlan0     IEEE 802.11  ESSID:"SKYNET"
      Mode:Managed  Frequency:2.412 GHz  Access Point: AC:84:C9:CD:79:E0
      Bit Rate=72.2 Mb/s   Tx-Power=31 dBm
      Retry short limit:7   RTS thr:off   Fragment thr:off
      Power Management:on
      Link Quality=68/70  Signal level=-42 dBm
      Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
      Tx excessive retries:51  Invalid misc:0   Missed beacon:0

1 Ответ

0 голосов
/ 22 февраля 2019

Следующий делает (68/70) * 100.использование split() 68 сохраняется в a[2], тогда как 70 сохраняется в a[3]

iwconfig wlan0|awk '/Link Quality/{split($2,a,"=|/");print (a[2]/a[3])*100"%"}'
97.1429%

для целочисленного результата:

iwconfig wlan0|awk '/Link Quality/{split($2,a,"=|/");print int((a[2]/a[3])*100)"%"}'
97%

или просто используйте printf:

iwconfig wlan0|awk '/Link Quality/{split($2,a,"=|/");printf "%d%s\n", (a[2]/a[3])*100, "%"}'
97%

PS: протестировано с выходом, предоставленным рассматриваемым OP.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...