gpt4 book ai didi

awk - shell 变量在 awk 中被错误解释

转载 作者:行者123 更新时间:2023-12-02 00:38:41 25 4
gpt4 key购买 nike

在下面的代码中,我试图将 shell varibale 传递给 awk。但是当我尝试将它作为 a.sh foo_bar 运行时,打印的输出是“foo is not declared”,而当我将它作为 a.sh bar_bar 运行时,打印的输出是“foo is declared”。 awk 中有错误还是我在这里做错了什么?

我正在使用 gawk-3.0.3。

#!/bin/awk

model=$1

awk ' {

match("'$model'", /foo/)
ismodel=substr("'$model'", RSTART, RLENGTH)
if ( ismodel != foo ) {
print " foo is not declared"
} else {
print " foo is declared"
}
}
' dummy

dummy 是只有一个空行的文件。

谢谢,

最佳答案

您应该使用 AWK 的变量传递而不是复杂的引用:

awk -v awkvar=$shellvar 'BEGIN {print awkvar}'

您的脚本是作为 shell 脚本编写的,但是您有一个 AWK shebang 行。您可以将其更改为 #!/bin/sh

关于awk - shell 变量在 awk 中被错误解释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3528659/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com