用shell编程查找目录下的对应文件代码的数量
1 #!/bin/bash
2
3 linesum=0
4 empty=0
5 dir=$1 #第一个参数就是输入的目录数
6 echo "$dir"
7 function sum(){
8 if [ -d $1 ]
9 then
10 for file in ` ls $1 `
11 do
12 if [[ $file = "." || $file = ".." ]]
15 fi
16 newstr="$1/$file"
17 if [ -d $newstr ]
18 then
19 sum $newstr
21 then
22 #进行统计操作
23 dirLineNum=0
24 dirEmptyNum=0
25 while read line
26 do
27 if [ "$line" ]
28 then
29 linesum=$(($linesum+1))
30 dirLineNum=$(($dirLineNum+1))
31 else
32 empty=$(($empty+1))
33 dirEmptyNum=$(($dirEmptyNum+1))
34 fi
35 done < $newstr
36 printf "%s\t%s:%d\t%s:%d\t%s:%d\t\n" $newstr lineNum $di rLineNum emptyNum $dirEmptyNum sumNum `expr $dirLineNum + $dirEmptyNum `
37 else
38 continue
39 fi
40 done
41
42 fi
43 }
44 sum $dir
45 echo "文件总行数:$linesum"
46 echo "空行数:$empty"
47 echo "总代码数为:` expr $linesum + $empty `"
查询的结果如下: