shell脚本实例


shell脚本实例
 
1、切换工作目录至位置参数给出的目录,依次向这些目录中的每个文件或子目录问好,统计这些目录下的各种文件及子目录个数,并显示。
 
01
#! /bin/sh
02
 
03
#切换工作目录至位置参数给出的目录
04
#依次向这些目录中的每个文件或子目录问好
05
#统计这些目录下的各种文件及子目录个数,并显示
06
 
07
if [ $# -lt 1 ]
08
then
09
    echo "parameter's number error!";
10
    exit 1;
11
fi;
12
 
13
while [ $# -gt 0 ]
14
do
15
    if [ -f $1 ]
16
    then
17
        echo "$1 is not a dir!";
18
    else  
19
        cd $1
20
 
21
        bfiles=0;  #块设备文件
22
        cfiles=0;  #字符设备文件
23
        pfiles=0;  #管道文件
24
        lfiles=0;  #链接文件/目录
25
        sfiles=0;  #sock文件
26
        files=0;   #普通文件
27
        dirs=0;    #目录文件
28
        total=0;   #总文件数
29
        for var in `ls $1`
30
        do
31
            total=`expr $total + 1`;
32
            echo "hello $var";
33
            if [ -b $var ]
34
            then
35
                bfiles=`expr $bfiles + 1`; 
36
            elif [ -c $var ]
37
            then
38
                cfiles=`expr $cfiles + 1`;
39
            elif [ -S $var ]
40
            then
41
                sfiles=`expr $sfiles + 1`;
42
            elif [ -p $var ]
43
            then
44
                pfiles=`expr $pfiles + 1`;
45
            elif [ -h $var ]
46
            then
47
                lfiles=`expr $lfiles + 1`;
48
            elif [ -f $var ]
49
            then
50
                files=`expr $files + 1`;
51
            elif [ -d $var ]
52
            then
53
                dirs=`expr $dirs + 1`;
54
            fi;
55
        done
56
      
57
        echo "the number of bfiles is $bfiles";
58
        echo "the number of cfiles is $cfiles";
59
        echo "the number of lfiles is $lfiles";
60
        echo "the number of sfiles is $sfiles";
61
        echo "the number of pfiles is $pfiles";
62
        echo "the number of files is $files";
63
        echo "the number of dirs is $dirs";
64
        echo "total file number  is $total";
65
    fi;
66
    echo "************************************"
67
    shift;
68
done

相关内容

    暂无相关文章