从IWConfig获得信号质量

  • 本文关键字:信号 IWConfig 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

以下是(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%sn", (a[2]/a[3])*100, "%"}'
97%

ps:使用有关OP提供的输出进行测试。

最新更新