无聊之中写了个统计程序源代码行数的shell脚本,源码如下:
#!/bin/sh
#check file name suffix
check_name()
{
#you can add or delete suffix
case $1 in
*.h | *.c | *.cpp | *.c++) return 0;;
*.java) return 0;;
*.py) return 0;;
*.pl) return 0;;
*.sql) return 0;;
*.jsp | *.js) return 0;;
*) return 1;;
esac
}
#count source lines in a file or files in a directory tree recursively
count_line()
{
if [ -f $1 ]
then
if check_name $1
then
echo `cat $1 | grep -v "^$" | wc -l $1 | awk '{print $1}'`
else
echo 0
fi
elif [ -d $1 ]
then
cd $1
s=0
for i in *
do
c=`count_line $i`
s=$((s+c))
done
echo $s
cd ..
else
echo 0
fi
}
sum=0
for item in $*
do
count=`count_line $item`
sum=$((sum+count))
done
echo $sum
基础性的,不解释,用法自己研究。