在 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}'`