awk 接受 cshell 中美元符号提供的变量

awk 接受 cshell 中美元符号提供的变量

在 c shell 脚本中,我试图将 bbb 传递给 awk sub,但显然它不起作用。

#!/bin/csh
set aaa=a
set bbb=b

#And I'm using it in awk sub

set ccc=`echo $aaa | awk '{sub("a",$bbb); print $0}'`

echo $ccc

但回声空洞,不知道为什么。

请注意,如果我将 $bbb 替换为“b”,那么它效果很好。

答案1

您必须将 shell 变量传递给awk.要么与

set ccc=`echo $aaa | awk -v bb=$bbb '{sub("a",bb); print $0}'`

awk引用 shell 变量时关闭并重新打开引用:

set ccc=`echo $aaa | awk '{sub("a",'$bbb'); print $0}'`

相关内容