shell - 将变量从 shell 脚本导出到 awk

标签 shell awk grep

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

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

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

名称=再见

但我没有得到同样的结果。你能帮我解决这个问题吗?谢谢。

最佳答案

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

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

这将按预期返回 byehi

关于shell - 将变量从 shell 脚本导出到 awk,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11443693/

相关文章:

linux - 为什么我不能在 gawk 中转义引号?

debugging - 如何不忘记删除代码中的调试行

xml - 使用 AWK 打印 XML 元素

arrays - 如何从 perl 中的数组中过滤掉空哈希值?

linux - Bash grep mac 地址 unix/linux 带分号

linux - Shell 重定向 - 对话框

c++ - 基于事件的 shell 脚本

bash - awk 根据列值连接

linux - 在分隔符处拆分字符串并对最后一个字段求​​和

linux - 从模式的出现开始读取文件的行