第一篇文章以寻求帮助。我试图从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提供的输出进行测试。