【awk】shell如何向awk传递参数
awk使用shell变量
1."'$var'" 单引号在里双引号在外
#!/bin/bash
var="test"
awk 'BEGIN{print "'$var'"}'
这种写法要求变量var中不含有空格。若var中含有空格,那么就要用 “‘“$var”’”
这种写法亲测有效
2.export变量,然后用ENVIRON[“var”]
#!/bin/bash
var="test"
export var
awk 'BEGIN{print ENVIRON["var"]}'
3.使用-v选项。
#!/bin/bash
var="test"
awk -v nvar="$var" 'BEGIN{print nvar}'
这种方法也可以
shell使用awk传递出来的变量
eval
along@along-laptop:~/code/shell/shell$ cat awktest.sh
#!/bin/bash
var1="test"
var2="along"
eval $(awk 'BEGIN{print "var1=along;var2=test"}')
echo "var1:"$var1
echo "var2:"$var2
along@along-laptop:~/code/shell/shell$ ./awktest.sh
var1:along
var2:test