为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

摇曳的蔷薇 2019-05-24 15:28:38
如何在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我对此感到困惑。
查看完整描述

4 回答

?
紫衣仙女

TA贡献1839条经验 获得超15个赞

似乎根本没有提到好的旧ENVIRON awk内置哈希。其用法示例:

$ X=Solaris awk 'BEGIN{print ENVIRON["X"], ENVIRON["TERM"]}'Solaris rxvt


查看完整回答
反对 回复 2019-05-24
?
守着星空守着你

TA贡献1799条经验 获得超8个赞

您可以使用变量name()和环境变量()的值()传递命令行选项 :-vv="${v}"

% awk -vv="${v}" 'BEGIN { print v }'123test

或者使它更清晰(少得多的vs):

% environment_variable=123test% awk -vawk_variable="${environment_variable}" 'BEGIN { print awk_variable }'123test


查看完整回答
反对 回复 2019-05-24
  • 4 回答
  • 0 关注
  • 2445 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信