Chinaunix

标题: for递归循环中的变量,不能echo出来,求教 [打印本页]

作者: 鸡鸡哥    时间: 2011-03-29 01:08
标题: for递归循环中的变量,不能echo出来,求教
本帖最后由 鸡鸡哥 于 2011-03-29 01:10 编辑
  1. #!/bin/bash
  2. DPATH=/home/zhangsan
  3. cd $DPATH
  4. for D1 in `ls $DPATH`
  5.     do
  6.         for D2 in `ls $DPATH/$D1`
  7.              do
  8.               echo $DPATH/$D1/$D2                   #显示
  9.              for f in `ls $DPATH/$D1/$D2`
  10.                         do
  11.                         echo $D2                  #不显示
  12.                 rm $DPATH/$D1/$D2/$f
  13.                         echo $D2                   #也不显示
  14.                 done
  15.                    echo $D2                                  #显示
  16.              exit
  17.              done
  18. 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