有人可以建议如何解决这种情况:
我用arg调用函数:
funct $size
然后我需要在函数内运行bash命令
function funct {
arg=$1
files=(`find /var/ -mindepth 3 -maxdepth 3 -type d -exec du -bs {} \; | awk '$1>$arg'`)
}
问题是awk '$1>$arg'
我总是得到awk '$size>$size'
,而不是$1
从find-du
结果。
有人可以帮忙吗?先感谢您。
Shell不会扩展,$arg
因为它是单引号。对于find-awk管道,请尝试:
find /var/ -mindepth 3 -maxdepth 3 -type d -exec du -bs {} \; | awk -v arg="$arg" '$1>arg'
在这里,-v arg="$arg"
创建一个名为的awk变量,arg
并为其分配shell变量的值arg
。
请注意,如果任何目录名称中都包含空格,则该数组files
可能不是您所期望的。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句