2

我正在将变量从 shell 脚本导出到 awk。程序如下

export name="hi"
eval $(awk '{element="bye";name=element"name";print name}')
echo $name 

我的预期输出是我需要将名称与 awk 脚本中的元素连接起来,然后在外面显示连接的结果,因此我的输出将是

名字=再见

但我不一样。你能帮我解决这个问题吗?谢谢你。

4

1 回答 1

3

您可以使用 -v 选项分配变量,而无需将任何内容导出到环境中。例如:

name='hi'
name=$(
    awk -v name="$name" 'BEGIN {print "bye" name}'
)
echo "$name"

这将按byehi预期返回。

于 2012-07-12T01:11:43.027 回答