Chinaunix

标题: 【已解决】赋值运算中能有变量吗?(详细见代码) [打印本页]

作者: icecoldheart    时间: 2009-01-21 15:36
标题: 【已解决】赋值运算中能有变量吗?(详细见代码)
#!/bin/bash
num=`df -h|grep sda|wc -l`
for((i=1;i<=$num;i++))
do
let var=$i+1
df -h|awk '{if(NR==$var){print $1}}

我想要的结果是打出/dev/sda1可是这样写也没有报错,但却什么也打不出来,到底是哪错了呢?

[ 本帖最后由 icecoldheart 于 2009-1-21 21:33 编辑 ]
作者: ly5066113    时间: 2009-01-21 15:44
df -h | awk '/sda/{print $1}'
作者: biglazybug    时间: 2009-01-21 15:46
df -h| awk '/sda/{print $1}'?
作者: biglazybug    时间: 2009-01-21 15:47
标题: 回复 #2 ly5066113 的帖子
要发帖时候 接了个电话结果就成3楼了.....我冤啊
作者: fucj    时间: 2009-01-21 15:49
没有匹配到阿!,awk能这样传值吗?
作者: biglazybug    时间: 2009-01-21 15:51
标题: 回复 #5 fucj 的帖子
什么没匹配到?
作者: fucj    时间: 2009-01-21 15:53
原帖由 biglazybug 于 2009-1-21 15:51 发表
什么没匹配到?


我是说lz的$var变量,值没传进去
作者: fucj    时间: 2009-01-21 15:58
不好意思,搞错了,应该是这样
awk '{if(NR==var)print $1}' var="$var"

[ 本帖最后由 fucj 于 2009-1-21 16:22 编辑 ]
作者: ynchnluiti    时间: 2009-01-21 15:58
原帖由 fucj 于 2009-1-21 15:53 发表


我是说lz的$var变量,值没传进去

不能,用双引号。
作者: 我是DBA    时间: 2009-01-21 16:07
df -h|awk -v var=$var '{if(NR==var){print $1}}
作者: icecoldheart    时间: 2009-01-21 16:17
由于我这个是个循环所以还是用df -h | awk '/sda/{print $1}'
作者: icecoldheart    时间: 2009-01-21 16:23
这个也选df -h|awk -v var=$var '{if(NR==var){print $1}}




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2