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

sh/bash/dash/ksh/zsh等Shell脚本
回复
糊涂的小强
帖子: 71
注册时间: 2014-04-28 14:33
系统: ubuntu12&centos6

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

#1

帖子 糊涂的小强 » 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中
头像
xcjzhd
帖子: 203
注册时间: 2009-06-12 20:20
系统: The Great ArchLinux

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

#2

帖子 xcjzhd » 2014-07-24 16:05

用-v参数.
负责解决各种UEFI问题
头像
xcjzhd
帖子: 203
注册时间: 2009-06-12 20:20
系统: The Great ArchLinux

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

#3

帖子 xcjzhd » 2014-07-24 16:07

举个例子吧:
awk -v var="$v" 'BEGIN {print var}'
这种问题别开帖子问, 直接google一搜就能搜到了. 在你问之前, 自己尝试过什么办法来获取答案?
http://mattgemmell.com/what-have-you-tried/
负责解决各种UEFI问题
头像
astolia
论坛版主
帖子: 6703
注册时间: 2008-09-18 13:11

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

#4

帖子 astolia » 2014-07-24 16:52

去买本shell基础书认真读完就不会有这种问题了
cao627
帖子: 992
注册时间: 2007-12-05 10:57
系统: ubuntu14.04
来自: 金山

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

#5

帖子 cao627 » 2014-07-24 17:36

shell 和 awk不能混为一谈
awk是独立于shell的工具。shell变量不能直接为awk所用。
要有一个传递的过程,如2楼指出。
糊涂的小强
帖子: 71
注册时间: 2014-04-28 14:33
系统: ubuntu12&centos6

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

#6

帖子 糊涂的小强 » 2014-07-24 18:00

谢谢以上各位
糊涂的小强
帖子: 71
注册时间: 2014-04-28 14:33
系统: ubuntu12&centos6

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

#7

帖子 糊涂的小强 » 2014-07-24 18:01

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