在使用awk的过程中,经常会需要引用外部变量,但是awk需要使用单引号将print包起来,导致print后的$引用无效,可以采用下面的方式

例如:

#!/bin/bash
a="line1 line2 line3"
for ((i=1;i<=3;i++))
do
    echo $a | awk '{print $i}'
done

上面这个脚本运行的时候,会输出三次line1 line2 line3,而不是我们想要的每次输出一列。原因是$i没有被替换成$1,$2,$3.解决方案如下

#!/bin/bash
a="line1 line2 line3"
for ((i=1;i<=3;i++))
do
    echo $a | awk '{print $"'$i'"}'
done

这样,脚本就会逐列进行输出了。

相关文章:

  • 2022-12-23
  • 2021-11-08
  • 2021-07-20
  • 2022-12-23
  • 2021-08-23
  • 2021-06-28
猜你喜欢
  • 2022-12-23
  • 2022-01-27
  • 2021-11-19
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案