SHELL : 将shell变量传递给awk

bit_rshift() {
    refer_value=$1
    offset=$2

    result=`echo $refer_value | awk -v bits=$offset '{print rshift($0,bits)}'`
    echo $result
}

 

http://www.cppblog.com/prayer/archive/2010/08/26/124860.html

2、3没有成功

 

1.利用shell cmdline的特性
A=123
awk '/^'"$A"'/ { print $2 }'
 
上面的cmdline中,shell把'/^'"$A"'/ { print $2 }'作为awk的第一个参数,这个'/^'"$A"'/ { print $2 }'可以分为3小块
(1)'/^':因为/^被单引号引起来,所以shell传这个小部分给awk时候,传的是:/^
(2)"$A":因为$A是被双引号引起,所以shell传这个小部分给awk时候,先把$A,做给“变量替换”,所以传的是:123
(3)'/ { print $2 }':因为/ { print $2 }被单引起来,所以传的是:/ { print $2 }
 
这3个小部分做为一个参数传给awk,合计3个小部分,那么传的就是
/^123/ { print $2 }
 
2.使用-v参数
A=123
awk -v B="$A" '/^B/ { print $2 }'
 
3.pass variable settings into awk as "fake file names"
awk '/^B/ { print $2 }' B="$A"
 
 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值