免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2249 | 回复: 4

for 循环问题 [复制链接]

论坛徽章:
0
发表于 2011-10-20 09:05 |显示全部楼层
现在有个疑问:

我先用命令取出下面的值:
/ /dev/cciss/c0d0p1
/export /dev/cciss/c0d1p1

然后带进for循环里面应该是两行才对.第一遍循环带入第一行,然后带入第二行.

可问题是现在我用echo 输出变量的时候发现是两行合并为一行直接循环了....

结果变成for的时候直接出来 / /dev/cciss/c0d0p1 /export /dev/cciss/c0d1p1

请问大家这个是什么原因?

论坛徽章:
0
发表于 2011-10-20 09:25 |显示全部楼层
这问题.直接贴代码?
不看你的代码怎么知道哪里有问题?

另外这种情况用while 循环更好点

论坛徽章:
0
发表于 2011-10-20 09:40 |显示全部楼层
回复 2# jasonyy77


#!/bin/sh

DISK=`df -h | grep /dev/ | grep -v none | grep -v tmpfs | awk '{print $NF " " $1}'`

for i in "$DISK"
do

echo "$i"

done

问题应该在两个磁盘号的空格.

论坛徽章:
0
发表于 2012-07-17 15:52 |显示全部楼层
回复 1# zhangheng520


    为了我们群里一个兄弟,回复下这个问题,这个问题有什么好纠结的呢,for本来就这个机制。
我猜测你是想循环依次做某件事情。
echo $SHELL
/usr/bin/ksh
sh test.sh  
/ /dev/hd4
/usr /dev/hd2
/var /dev/hd9var
/tmp /dev/hd3
/home /dev/hd1
/opt /dev/hd10opt
/oracle /dev/oraclelv
/ptf /dev/ptflv
/cv /dev/cvlv
/arch /dev/lv_arch
/opt/bmc /dev/patrollv
/tempfs /dev/templv
/dsg /dev/dsglv
/dsgbak /dev/dsgbaklv
more test.sh

#!/bin/sh
DISK=`df -k | grep /dev/ | grep -v none | grep -v tmpfs | awk '{print $NF "," $1}'`
for i in $DISK
do
echo "$i" | sed 's/,/ /'
done

论坛徽章:
0
发表于 2012-07-17 16:08 |显示全部楼层
我是来围观的!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP