写一个显示目录的脚本,有点小问题
下面的脚本用于打印目录;如果不指定要打印的目录的话,将从"/"下开始,打印所有的目录#!/bin/bash
function isDir() {
for X in $1/*; do
if [ -d $X ] ; then
echo $X
isDir $X;
fi;
done;
}
isDir $1;
上面的脚本有个bug:(
当目录名中间有空格时,不能找到该目录
修正如下,但仍然出错.请高手修改
#!/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;
function isDir() {
for X in $1/*; do
if [ -d "$X" ] ; then
echo $X
isDir "$X";
fi;
done;
}
有什么用? 一个 find -type d 就解决了 呵呵,没有什么用,也就是那么一回事
试着用不同的方法解决问题而已
显示目录的方法很多种,用find -type d也算是比较复杂啦.....
页:
[1]