添加 shell 个变量后 AWK 脚本停止工作

AWK script stops working after shell variables are added

我的以下代码(感谢该社区的一名成员)表现得很奇怪。当我对动态部分进行硬编码时,它起作用了……当我使用参数 运行 代码时,它什么也没做。这是代码(有和没有变量)以及输出(屏幕截图)

echo "Attempt A:"
echo "--------------------"
echo "awk -v n=4 '{a[p]=[=11=]; p=(p+1)%n}
              /(Something)/{for(i=p;i<p+n-1;i++) print a[i%n];f=1}
              f{print}
              /\/Interface/{f=0}' file.log | awk 'BEGIN{ORS=RS=\"</Interface>\n -------------------\"}
      /name=\"Andy\"/' > AttemptA.txt"

awk -v n=4 '{a[p]=[=11=]; p=(p+1)%n}
              /(Something)/{for(i=p;i<p+n-1;i++) print a[i%n];f=1}
              f{print}
              /\/Interface/{f=0}' file.log | awk 'BEGIN{ORS=RS="</Interface>\n -------------------"}
      /Name="Andy"/' > AttemptA.txt

aaid="Andy"
aalog=file.log

echo "-------------------------------------------------------------------------------------------------"
echo "-------------------------------------------------------------------------------------------------"
echo ""
echo ""
echo "Attempt B:"
echo "awk -v n=4 '{a[p]=[=11=]; p=(p+1)%n}
              /(Something)/{for(i=p;i<p+n-1;i++) print a[i%n];f=1}
              f{print}
              /\/Interface/{f=0}' ${aalog} | awk 'BEGIN{ORS=RS=\"</Interface>\n -------------------\"}
      /Name=\"${aaid}\"/' > AttemptB.txt"

awk -v n=4 '{a[p]=[=11=]; p=(p+1)%n}
              /(Something)/{for(i=p;i<p+n-1;i++) print a[i%n];f=1}
              f{print}
              /\/Interface/{f=0}' ${aalog} | awk 'BEGIN{ORS=RS="</Interface>\n -------------------"}
      /Name="${aaid}"/' > AttemptB.txt

结果如下(截图):

运行 代码:http://imgur.com/FEJW5uR

创建的文件:http://imgur.com/NytUL02

知道为什么它能识别所有内容,打印相同的命令,但一个有效而另一个无效吗?

awk -v aaid="$aaid" 'BEGIN{ORS=RS="</Interface>\n -------------------"}
    [=10=] ~ "Name=\""aaid"\""' > AttemptB.txt