在shell中,经常会处理一些命令的输出内容,如果输出内容中有多个字符串需要截取出来赋值给多个变量,比较简单的方法是先将输出内容记录到一个临时文件,然后重复多次awk指令,将输出内容分别截取到不同变量中。
但是上述方法虽然逻辑简单,但是处理效率较低,重复执行的awk命令完全没有"营养"。
注意,上述输出内容中混合了多种分隔符号,例如空格,:,,其中如果用空格来作为分隔符还需要注意多个空格。为了简化和明确分隔符,所以首先过滤掉空格,否则字符串中多少不一的空格符会让我们的awk无所适从。这里我们使用非常常规的tr命令
接下来就很容易结合使用:和分隔符来过滤出3个负载值:
注意:这里使用的第一次$()是为了将命令输出转换成变量,然后让echo指令打印出这个变量。然后再套上一个$()将echo输出的结果再次转换成变量。