从iwconfig获取以%为单位的信号质量

时间:2019-02-22 19:21:02

标签: awk

第一篇求助...。 我正在尝试从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 :(得分:1)

正在执行(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提供的输出进行了测试。