将变量从 SHELL 传递到 AWK

将变量从 SHELL 传递到 AWK

我想在 Solaris 11 上编写一个 line 来检查我系统的每个 zpool 中的空间。输出看起来像这样......

myzone1 rpool 83%
myzone2 rpool 49%

我读过的所有帖子都说使用 -v 开关将 shell 变量传递给 awk。

每次我尝试都会出错。

这段代码有效。我得到了池和使用的百分比。

for i in `zoneadm list -icv|grep running|awk '{print $2}'`; do
    zlogin $i zpool list -H|awk '{print $1" "$5}';
done

我想将区域名称添加到此报告输出中。这段代码对我不起作用!

for i in `zoneadm list -icv|grep running|awk '{print $2}'`; do
    zlogin $i zpool list -H|awk -v i="$i" '{print i" "$1" "$5}';
done

你能帮我找出我哪里出错了吗?

答案1

感谢这个评论:

有关的:Solaris 11 上的 POSIX awk马克·普洛特尼克

我将代码重写为:

for i in `zoneadm list -icv|grep running|awk '{print $2}'`; do zlogin $i zpool list -H|/usr/bin/nawk -v i="$i" '{print i" "$1" "$5}';done

这按照我想要的方式报告。

相关内容