我想包含这个
du -s *|awk '{ if ($1 > 3000) print }'
在shell脚本中,但我想参数化3000.但是,由于$1
已被使用,我不知道该怎么做。这完全失败了:
size=$1
du -s *|awk '{ if ($1 > $size) print }'
如何在上面的第一个脚本中传递参数代替3000?
答案 0 :(得分:4)
将shell变量传递给awk时,尽可能尝试使用awk的-v
选项。这比在周围引用
size="$1"
du -s *| awk -v size="$size" '$1>size'
答案 1 :(得分:3)
单引号禁止扩展,所以:
du -s *|awk '{ if ($1 > '"$1"') print }'
答案 2 :(得分:3)
size=$1
du -s *|awk '{ if ($1 > '$size') print }'
答案 3 :(得分:1)
您可以在命令行上设置awk
个变量:
du -s * | awk '{ if ($1 > threshold) print }' threshold=$1