分页: 1 / 1

for循环和awk结合变量的作用域

发表于 : 2014-07-24 16:03
糊涂的小强

代码: 全选

#!/bin/bash
for ((i = 1,j = 30;i <= 271,j <= 300;i += 30,j += 30))
do
awk '$2 >= i &&$ 2 <= j{print $1}' new_2.txt|wc -l;
done
for ((i = 1,j = 30;i <= 271,j <= 300;i += 30,j += 30))中的i j在awk中怎么是0,难道作用域无法覆盖到awk中

Re: for循环和awk结合变量的作用域

发表于 : 2014-07-24 16:05
xcjzhd
用-v参数.

Re: for循环和awk结合变量的作用域

发表于 : 2014-07-24 16:07
xcjzhd
举个例子吧:
awk -v var="$v" 'BEGIN {print var}'
这种问题别开帖子问, 直接google一搜就能搜到了. 在你问之前, 自己尝试过什么办法来获取答案?
http://mattgemmell.com/what-have-you-tried/

Re: for循环和awk结合变量的作用域

发表于 : 2014-07-24 16:52
astolia
去买本shell基础书认真读完就不会有这种问题了

Re: for循环和awk结合变量的作用域

发表于 : 2014-07-24 17:36
cao627
shell 和 awk不能混为一谈
awk是独立于shell的工具。shell变量不能直接为awk所用。
要有一个传递的过程,如2楼指出。

Re: for循环和awk结合变量的作用域

发表于 : 2014-07-24 18:00
糊涂的小强
谢谢以上各位

Re: for循环和awk结合变量的作用域

发表于 : 2014-07-24 18:01
糊涂的小强
xcjzhd 写了:举个例子吧:
awk -v var="$v" 'BEGIN {print var}'
这种问题别开帖子问, 直接google一搜就能搜到了. 在你问之前, 自己尝试过什么办法来获取答案?
http://mattgemmell.com/what-have-you-tried/
我在百度收索 awk for循环