我将变量从shell脚本导出到awk。该计划如下
export name="hi"
eval $(awk '{element="bye";name=element"name";print name}')
echo $name
我的预期输出是什么?我需要将名称与awk脚本中的元素连接起来然后在外部显示连接结果,因此我的输出将是
名= byehi
但我没有得到同样的结果。你能帮我解决这个问题。谢谢。
答案 0 :(得分:3)
您可以使用-v选项分配变量,而无需将任何内容导出到环境中。例如:
name='hi'
name=$(
awk -v name="$name" 'BEGIN {print "bye" name}'
)
echo "$name"
这将按预期返回byehi
。