如何使用 Bourne Shell 脚本来获取值?

当我在 openwrt 中输入某些命令时,结果如下所示。

安全性   信号(%)      模式
WPA2       86             打开
WPA2       42             打开

在这个结果中,我想抓取第一列中的信号值(86)。 如何使用 Bourne Shell 脚本来获取值?

此外,luci.sys.call 函数只用于制作 Luci 的 cbi 文件,对吗?

点赞
用户8012646
用户8012646

以下操作可以达到目的:

HereYourCommand | head -2 | tail -1 | tr -s ' ' | cut -d' ' -f2

HereYourCommand替换为你自己的openwrt命令。


解释:

  • head -2:选取前两行。
  • tail -1:从这两行中选择最后一行。
  • tr -s ' ':将多个空格替换为一个空格。
  • cut -d' ' -f2:从剩下的行中选取第二个字段。
2017-12-06 09:51:51
用户107090
用户107090

尝试一下

HereYourCommand | awk 'NR==2 { print $2 }'

这个awk程序会打印第二条记录(也就是第二行)的第二个字段(也就是第二列)。

2017-12-06 10:01:55
用户3972181
用户3972181
将原文翻译成中文并且保留原本的 markdown 格式:

`tail +2` 跳过第一行,然后将空格或制表符替换为单个空格,并使用 cut 命令获取第二个字段。

输出结果:

4 5 8


输入结果:

x y z 1 4 7 2 5 7 4 8 0


2017-12-06 10:26:44