免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2341 | 回复: 2
打印 上一主题 下一主题

我写的一个打印目录树的脚本,请大家指教 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-08-30 14:42 |只看该作者 |倒序浏览

#!/bin/bash

SEPERATOR="|---"

list_directory () {
        Current_Dir=$1
        pushd ${Current_Dir} >& /dev/null

        for file in `ls`; do
                if [ -d ${file} ]; then
                        echo -n  ${prefix}
                        echo -ne "\033[33m"
                        echo     ${file}
                        echo -ne "\e[0m"
                        prefix=`echo ${prefix} | sed 's/^/|.../g'`
                        list_directory ${file}
                        prefix=`echo ${prefix} | sed 's/^|...//g'`
                else
                        echo -e  ${prefix}${file}
                fi
        done

        popd >& /dev/null
}

if [ $# -lt 1 ]; then
        echo "Please designate the directory."
        exit 2
fi

for DIR in $@ ; do
        if [ ! -d $DIR ]; then
                echo $DIR "is not a directory"
                continue
        fi
        echo $DIR
        prefix=$SEPERATOR
        list_directory $DIR
        echo ""
done


小弟最近在学shell编程,写了个小脚本
在网上有很多类似的现成脚本,现在我又重复造了这个“轮子”,只是为了学习而已

有个问题,请教各位大侠:其实打印的时候,我想用空格隔开,也就是sed 's/^/|   /g',可是每次显示的时候,都只显示一个空格了,不知道什么原因…… 请大侠教我:)

[ 本帖最后由 drowsyboy 于 2007-8-30 14:44 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2007-08-30 17:23 |只看该作者
echo -e  "${prefix}${file}"

论坛徽章:
0
3 [报告]
发表于 2007-08-30 18:01 |只看该作者

回复 #2 foreman2002 的帖子

谢谢... 搞定了,呵呵

  1. prefix=`echo ${prefix} | sed 's/^/|.../g'`
  2. 也要改成
  3. prefix=`echo "${prefix}" | sed 's/^/|   /g'`
复制代码


为什么空格要加引号,而其他的字符就不需要呢,看来substitution要好好理解下了

[ 本帖最后由 drowsyboy 于 2007-8-30 18:02 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP