QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 734|回复: 2

写一个显示目录的脚本,有点小问题

[复制链接]
发表于 2004-12-1 20:00:35 | 显示全部楼层 |阅读模式
下面的脚本用于打印目录;如果不指定要打印的目录的话,将从"/"下开始,打印所有的目录
[code:1]
#!/bin/bash
                                                                                 
function isDir() {
   for X in $1/*; do
        if [ -d $X ] ; then
           echo $X
           isDir $X;
        fi;
   done;
}
                                                                                 
isDir $1;
[/code:1]

上面的脚本有个bug
当目录名中间有空格时,不能找到该目录
修正如下,但仍然出错.请高手修改
[code:1]
#!/bin/bash
                                                                                 
function isDir() {
   for X in $1/*; do
#   Y=`echo $X | sed -e 's/ /\\ /g'`
       Y=`echo $X | sed -e 's/ /\\\\ /g'`    #路径中的空格前加"\",上面两种情况都不行...,echo $Y显示正确,那么-d却底认为$Y是什么东西?
        if [ -d $Y ] ; then
           echo $X
           isDir $X;
        fi;
   done;
}
                                                                                 
isDir $1;
[/code:1]
发表于 2004-12-1 21:52:07 | 显示全部楼层
[code:1]function isDir() {
   for X in $1/*; do
        if [ -d "$X" ] ; then
           echo $X
           isDir "$X";
        fi;
   done;
}[/code:1]

有什么用? 一个 find -type d 就解决了
回复

使用道具 举报

 楼主| 发表于 2004-12-2 10:15:22 | 显示全部楼层
呵呵,没有什么用,也就是那么一回事
试着用不同的方法解决问题而已
显示目录的方法很多种,用find -type d也算是比较复杂啦.....
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-5 15:55 , Processed in 0.099096 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表