如何在awk脚本中使用shell变量?

如何在awk脚本中使用shell变量?

我找到了一些办法通过外壳变量的awk脚本,但我感到困惑'"

首先,我尝试使用shell脚本:

$ v=123test$ echo $v123test$ echo "$v"123test

然后尝试了awk:

$ awk 'BEGIN{print "'$v'"}'$ 123test$ awk 'BEGIN{print '"$v"'}'$ 123

为什么有区别?

最后我试过这个:

$ awk 'BEGIN{print " '$v' "}'$  123test$ awk 'BEGIN{print ' "$v" '}'awk: cmd. line:1: BEGIN{print
awk: cmd. line:1:             ^ unexpected newline or end of string

我对此感到困惑。


摇曳的蔷薇
浏览 2446回答 4
4回答

紫衣仙女

似乎根本没有提到好的旧ENVIRON awk内置哈希。其用法示例:$ X=Solaris awk 'BEGIN{print ENVIRON["X"], ENVIRON["TERM"]}'Solaris rxvt

守着星空守着你

您可以使用变量name()和环境变量()的值()传递命令行选项 :-vv="${v}"% awk -vv="${v}" 'BEGIN { print v }'123test或者使它更清晰(少得多的vs):% environment_variable=123test% awk -vawk_variable="${environment_variable}" 'BEGIN { print awk_variable }'123test
打开App,查看更多内容
随时随地看视频慕课网APP