if=`awk -v interface="$INTERFACE" '$1 ~ "^" interface ":" { split($0, a, /: */); $0 = a[2]; print $3 " " $11 }' /proc/net/dev`
今天之前我从没和awk一起工作过,所以我有点想办法了。
在我看来,我们将值$INTERFACE作为INTERFACE传递到awk脚本中,然后筛选开头的行
interface:
(例如eth0:)。然后,我们使用冒号空间作为分隔符来分割行。然后,出于某种原因,在实际提取所需的值之前,我们将数组中的第三个条目赋给$0。
split($0, a, /: */)
和
$0 = a[2]
是不必要的,但我可能错了!当我们引用$3和$11时,将[2]赋值为$0会有什么变化吗?我试过脚本没有前两个语句,输出是一样的,但也许有一个角落的情况我错过了。。。
提前谢谢