首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在bash中将变量传递给nawk?

在bash中将变量传递给nawk?
EN

Stack Overflow用户
提问于 2011-08-20 05:09:49
回答 1查看 845关注 0票数 1

我试图在bash脚本中将一个变量传递给nawk,但它实际上并没有打印$commentValue变量的内容。除了printf语句的最后一部分之外,一切都运行得很好。谢谢!

代码语言:javascript
复制
echo -n "Service Name: "

read serviceName

echo -n "Comment: "

read commentValue

for check in $(grep "CURRENT SERVICE STATE"  $nagiosLog |grep -w "$serviceName" | nawk -F": " '{print $2}' |sort -u ) ; do
    echo $check | nawk -F";" -v now=$now '{ printf( "[%u]=ACKNOWLEDGE_SVC_PROBLEM;"$1";"$2";2;1;0;admin;$commentValue"\n", now)}' >> $nagiosCommand

done
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-08-20 05:16:04

$commentValue在对nawk的调用中,因此它在nawk中被视为变量,而不是bash中的变量。因为在nawk中没有这样的变量,所以在那里不会得到任何东西。您应该首先使用-v开关传递变量"inside“nawk,就像您对now变量所做的那样;即:

代码语言:javascript
复制
... | nawk -F";" -v now=$now -v "commentValue=$commentValue"

请注意引号-如果$commentValue包含空格,则引号是必需的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7127462

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档