Chinaunix
标题:
for递归循环中的变量,不能echo出来,求教
[打印本页]
作者:
鸡鸡哥
时间:
2011-03-29 01:08
标题:
for递归循环中的变量,不能echo出来,求教
本帖最后由 鸡鸡哥 于 2011-03-29 01:10 编辑
#!/bin/bash
DPATH=/home/zhangsan
cd $DPATH
for D1 in `ls $DPATH`
do
for D2 in `ls $DPATH/$D1`
do
echo $DPATH/$D1/$D2 #显示
for f in `ls $DPATH/$D1/$D2`
do
echo $D2 #不显示
rm $DPATH/$D1/$D2/$f
echo $D2 #也不显示
done
echo $D2 #显示
exit
done
done
复制代码
上面的脚本为什么$D2在最后一个循环不显示呢??,两次都不显示
作者:
南极雨
时间:
2011-03-29 09:55
本帖最后由 南极雨 于 2011-06-02 09:36 编辑
好像是没继承到这一层吧
补充:最好加个测试
作者:
xiaopan3322
时间:
2011-03-29 10:03
回复
1#
鸡鸡哥
不会不显示的,除非你的主目录底下的文件或者目录根本就不存在,for循环只进行到了第一层。。。
还有,你的第12行写的有问题。。。
作者:
howge
时间:
2011-03-29 10:11
shell 十三问里面有~ 学艺未精,不敢妄加评论
作者:
liion631818
时间:
2011-03-29 10:21
回复
1#
鸡鸡哥
试了一下,可以显示出来。
你确认下是否有$f ,
作者:
鸡鸡哥
时间:
2011-03-29 16:39
回复 鸡鸡哥
试了一下,可以显示出来。
你确认下是否有$f ,
liion631818 发表于 2011-03-29 10:21
服了,谢谢大家,昨晚上在服务器上操作,确实不显示
今天在vmware上操作,确实显示了,奇了!!!
作者:
beyondfly
时间:
2011-06-02 09:07
LZ这个不是递归,是嵌套
作者:
zhaoke0128
时间:
2011-06-02 13:10
回复
7#
beyondfly
赞成
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2