awk中需要使用shell中的变量来进行判断,但是使用-v 进行传递的时候,发现根本不起作用
#!/bin/bash
i=22
echo hello world | awk -v k="$i" '{if(k>100)\{print $1}else{print $2}}'
不管怎么改变i的值得到的总是hello;
而且如果
i=22
awk -v k="$i" 'BEGIN{print k}'
就可以打印出i的值,去掉BEGIN就会出现错误,无法打印,这是什么原因呢?哪里弄错了啊?求教
#!/bin/bash
i=22
echo hello world | awk -v k="$i" '{if(k>100)\{print $1}else{print $2}}'
不管怎么改变i的值得到的总是hello;
而且如果
i=22
awk -v k="$i" 'BEGIN{print k}'
就可以打印出i的值,去掉BEGIN就会出现错误,无法打印,这是什么原因呢?哪里弄错了啊?求教