shell编程--统计代码行数

        引:之前都太懒,没有及时把学到的知识总结到博客里。最近在学shell编程,正好作为养成写博客习惯的开端。平时我们都会遇到一个问题,写完一个项目后,想统计一下总的代码量,当代码文件很多时,一个个点开代码文件,然后把代码行数加起来是一件很费神的事。shell可以用短短几行代码就搞定这个问题。

一 shell源码(code_linage.sh):

1 #!/bin/bash
2 
3 if [ $# -eq 1 ] && [ -d $1 ] 
4 then
5     find $1 -type f -name "*.java" -print0 | xargs -0 wc -l
6 else
7     echo ‘wrong parameter‘
8 fi

 

二 shell代码分析:

这个代码的功能是:统计一个文件夹中java代码的行数

第1行:虽然开头是#,但是这句并不是注释,它的含义是用/bin/bash来解释这一段脚本。

第2行:作用是判断是否只有一个参数,而且参数代表的是一个目录。$# 表示参数个数,要等于1;-d $1 是判断第一个参数是不是表示一个目录。

第5行:是这段代码的核心部分。这一行可以分成两部分,管道命令“|” 前面的find命令功能是查找出 $1(也即第一个参数)目录下所有的java文件。        -print0 表示将这些找到的文件名用 \0 分隔;“|” 后面的命令功能是将统计每一个文件的代码行数。xargs可以将标准输入数据转换成命令行参数,传给wc命令。-0 表示以 \0 为分隔符, wc -l 就是代码统计行数。

三 运行效果:

 

Html_parer5是一个java项目的文件夹,每一行前面的数字表示这个java文件的代码行数,后面是文件名,最后一行是总的代码量。

当然,如果想统计c代码,或各种其他代码的行数,可以修改下find命令中 -name 后面的匹配串即可。

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。