shell编程--简单代码统计脚本

#!/bin/bash
help()
{
        echo "usage : count.sh search_key search_date"
}
if [ $# -ne 2 ];then
        help
        exit 0
else
        cd ~/source
        n=`grep -rn "$1" ./ | grep "$2"|wc -l`
        if [ $(($n%2)) -ne 0 ];then
                echo "source code tag not match"
                exit 0
        fi
        sum1=`grep -rn "$1" ./ | grep "$2" | awk -F: 'BEGIN {i = 0; sum = 0}{if (NR%2 != 0){i = $2} else {odd = $2; sum += $2 - i + 1}} END {print sum}'`
        cd ~/include
        n=`grep -rn "$1" ./ | grep "$2"|wc -l`
        if [ $(($n%2)) != 0 ];then
                echo "include code tag not match"
                exit 0
        fi
        sum2=`grep -rn "$1" ./ | grep "$2" | awk -F: 'BEGIN {i = 0; sum = 0}{if (NR%2 != 0){i = $2} else {odd = $2; sum += $2 - i + 1}} END {print sum}'`
         printf "code line count = %d\n" $(($sum1 + $sum2))
fi


注意不同shell在语法上有差异,例子使用bash

 

1.在bash下 $(())可以简单计算字符串的算术运算

2.条件控制语句,注意下面的空格

if空格[空格expression空格];then

fi

 

if空格[空格expression空格];then

    语句

else    #注意else里最少要有一句,否则就不要用else

    语句

fi

 

if空格[空格expression空格];then

    语句

elif空格[空格expression空格];then

    语句 

else    #注意else里最少要有一句,否则就不要用else

    语句

fi

3.变量的赋值,等号两边不能有空格

4.printf 格式字符串 参数1 参数2 ...#注意中间的空格

5.awk中的NR,表示当前已经读取的记录数,从1开始,不是0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值