1 我们都知道shell脚本能够做很多的事,今天刚好一个队友要我写个脚本求某个目录下所有java文件的行数总和
2 ok,为了方便,我把这个目录放到了当前的家目录下,路径为/home/chenguolin/src
3 我在家目录下建了一个s.sh的脚本,代码如下,等等来分析代码的意思
#!/bin/bash
function ergodic(){
for file in ` ls $1 `
do
if [ -d $1"/"$file ]
then
ergodic $1"/"$file
else
wc -L $1"/"$file | cut -d' ' -f1 >> /home/chenguolin/out
fi
done
}
INIT_PATH="/home/chenguolin/src"
ergodic $INIT_PATH
4 分析一下代码的意思
1 第一行是一个常规的格式,我们要指定这个脚本是由bash来执行
2 第二行是一个脚本的函数
3 第三行是一个for循环,shell里面把反引号里面的命令认为是系统命令,那么代码的意思就是循环枚举这个目录下的文件,$1是指函数的第一个参数
4 第四行跳过,相信大家都懂
5 第五行是一个判断语句,如果当前文件是一个目录
6 if的结构then
7 递归执行这个函数&