|
写了个小bash,统计一个项目下所有源代码的行数(无聊,刚学bash,见笑),这里所指的源代码包括.c;.h;.h??;.mk;.def等等,反正是要人去维护的东西。
思路很简单,递规遍历一个目录,碰到符号连接,可执行文件什么的就跳过,碰到目录就进去,用wc -l统计函数。
主体部分如下:
- calc_dir()
- {
- for file in `ls $PWD`
- do
- if [ -L $file -o -x $file ]
- #if [ -L $file ]
- then
- echo "$file is non-ascii, ignored"
- elif [ -f $file ]
- then
- #wc -l $file
- line_num=$(( $line_num + `wc -l < $file`))
- elif [ -d $file ]
- then
- cd $file
- echo $file
- calc_dir
- cd ..
- fi
- done;
- }
复制代码
运行环境是win2k pro + cygwin
然后发现一个很诡异的现象就是用 -x检查文件属性的时候,碰到目录就当作可执行文件跳过了……虽然偶2000的目录权限都是可读写可运行的,不过难道-x检查只是简单的检查一个文件的权限属性而不是文件本身嘛?那有不同执行权限得用户运行同一个脚本不是会得出完全不同的结果? |
|