Chinaunix首页 | 论坛 | 博客
  • 博客访问: 135805
  • 博文数量: 51
  • 博客积分: 2500
  • 博客等级: 少校
  • 技术积分: 540
  • 用 户 组: 普通用户
  • 注册时间: 2007-07-21 12:33
文章分类

全部博文(51)

文章存档

2011年(1)

2010年(5)

2009年(1)

2008年(12)

2007年(32)

我的朋友

分类:

2007-08-11 22:03:34

共享我写的一个脚本。来实现列出当前目录下的所有子目录。
 
主要思想是将当前目录入队。每次处理都从队列取队头元素, 如果队列不空,打印出当前目录并将该目录下的所有子目录入队。这样处理直到队列空为止。

#!/bin/bash

# list all subdirs in specified dir.

# author: gavin xu

#


#queue length

QLEN=0
indx=0

enque()
{
    tindx=`expr $QLEN + $indx`
    QUEUELIST[$tindx]=$1
    QLEN=`expr $QLEN + 1`
}

deque()
{
     TEMPVAR=${QUEUELIST[$indx]}
     indx=`expr $indx + 1`
    QLEN=`expr $QLEN - 1`
}

curdir=`pwd`

enque $curdir

while [ $QLEN -gt 0 ]
do

    deque

    cd $TEMPVAR

    lslist=`ls`

    for list in $lslist
    do
        if [ -d $list ]
        then
            tlist=$TEMPVAR/$list
         echo $tlist
            enque $tlist
        fi
    done

done

阅读(1087) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~