为了解决这个问题,需要使用awk命令而不是bash变量和函数。可以将输入传递给awk命令,而不是将其传递给bash函数。例如:
file="test.txt"
awk_val="hello"
awk -v a="$awk_val" '{print $a}' $file
在这个例子中,awk_val
是输入值,a="$awk_val"
将它传递给awk命令。如果输入值是作为函数参数传递的,则可以这样做:
myfunction() {
local awk_val="$1"
local file="$2"
awk -v a="$awk_val" '{print $a}' $file
}
myfunction "hello" "test.txt"
在这个例子中,函数myfunction
将awk_val
和file
作为参数获取,然后将awk_val
用-v
选项传递给awk命令。
上一篇:Bash函数始终忽略else块。