|
发表于 2010-3-8 17:55:02
|
显示全部楼层
- #! /bin/bash ###所有变量$f,$ff,$file要加双引号
- output(){
- file=$1;blank=$2;###不要用变量blank,直接用$2
- if [ -d $file ] && [ $file != '.'] && [ $file != '..'];then ####这里]前要空格
- for((n=1;n<$blank;n++));do
- echo -n " "; #输出前导空格
- done
- echo $file
- filelist=$(cd $file;ls -a); #####这样不能处理带空格的文件名
- for f in $filelist;do #####改用cd "$file";for f in * .*;do
- output $f $((blank+1))
- done
- else
- for((n=1;n<$blank;n++));do
- echo -n " "
- done
- echo $file
- fi
- }
- for ff in "$@";do
- output $ff 1;
- done
复制代码 改后- #! /bin/bash
- output(){
- file=$1;
- if [ -d "$file" ] && [ "$file" != '.' ] && [ "$file" != '..' ];then
- for((n=1;n<$2;n++));do
- echo -n " ";
- done
- echo $file
- (cd "$file"
- for f in .* * ;do
- output "$f" $(($2+1))
- done)
- else
- for((n=1;n<$2;n++));do
- echo -n " "
- done
- echo $file
- fi
- }
- for ff in "$@";do
- output "$ff" 1;
- done
复制代码 |
|