概述

本文从一段统计C/C++程序脚本入手,记录shell脚本常用和重要的知识点。

代码量统计程序

文件名称,count_code_line.sh

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#!/bin/bash

# 统计代码行数 去除空格和注释
# author: by wangxintang function count_dir()
{
total1=0
for input in $*
do
count=`find $input -name *.c -or -name *.cc -or -name *.cpp -or -name *.h -or -name *.hh -or -name *.sh -or -name Make* |
xargs cat | grep -v -e "^$" -e ^s*//.*$ | wc -l`
# if [[ $count == *[!0-9]* ]];then
# echo "not a number2"
# fi
#echo -e "$input: $count"
res=$[ total1 + count ]
total1=$res
done
#echo res: $res
echo $res
} if [ $# -eq 0 ];then
echo -e count directory: `pwd`
DIR=`pwd`
ret=`find $input -name *.c -or -name *.cc -or -name *.cpp -or -name *.h -or -name *.hh -or -name *.sh -or -name Make* |
xargs cat | grep -v -e "^$" -e ^s*//.*$ | wc -l`
echo "ret: " $ret
else
res=`count_dir $*`
echo "wangxintang"
echo $r 大专栏  “代码量统计脚本”es
#echo $res

代码解释

使用方式

两种使用方式。

方式一,在程序所在目录,执行

1
./count_code_line.sh

统计当前目录下代码量。

方式二,在程序所在目录,统计其他源代码目录下代码量,例如统计 /home/user/code/。操作方式如下

1
./count_code_line.sh /home/user/code/

逐行解释

  1. #!/bin/bash,在文件第一行,指明使用/bin/bash解释程序,其他行以#开头的语句,表示注释
  2. function count_dir(),定义一个名为count_dir的函数
  3. total1=0,定义变量total1并初始化为0
    4.
    1
    2
    3
    4
    for input in $*
    do
    .....
    done

for循环遍历$*内容,input指示$* 中每一个元素。
$*是一个特殊变量,传递给函数或者shell脚本参数列表。

  1. count=`**`,表示执行”****“中内容,并将返回值保存到count变量
  2. res=$[ total1 + count ] ,求算数和
  3. total1=$res 取res中的值,保存到total1
  4. echo $res 输出res中的值
  5. 1
    2
    3
    if [ $# -eq 0 ];then
    else
    fi

if else 语句

  1. [ $# -eq 0 ], 判断$# 是否为0

shell重要知识点

特殊变量

$0 当前脚本的文件名
$n 传递给脚本或函数的参数。是一个数字,表示第几个参数。例如,第一个参数是$1,第二个参数是$2。
$# 传递给脚本或函数的参数个数。
$ 传递给脚本或函数的所有参数。
$@ 传递给脚本或函数的所有参数。被双引号(“”)包含时,与 $
稍有不同,下面将会讲到。
$? 上个命令的退出状态,或函数的返回值。
$$ 当前Shell进程ID。对于 Shell 脚本,就是这些脚本所在的进程ID。

“代码量统计脚本”的更多相关文章

  1. [statsvn]-svn代码量统计

    用statasvn进行代码量统计的时候,第一步需要获取到项目的日志,但是我本机的svn1.4没有安装命令行,重新运行1.4的安装包也没有命令行的选项... 那就升级到最新的svn1.8好了,下载最新的 ...

  2. IDEA 代码量统计(Statistic)

    IDEA 代码量统计(Statistic) 1.1 前言 项目到了一定阶段,都会想要看看项目的代码量情况,这里主要使用插件Statistic进行代码统计查看. 1.2 安装插件步骤 找到插件市场入口并 ...

  3. git 统计代码量 shell脚本

    #!/bin/bash # 统计代码量 # 使用方法: sh gitstat.sh "2017-11-01" "2017-11-30" "JamKon ...

  4. shell scripts 之 代码量统计

    代码统计1 文件only中的内容为多个文件的文件名,code如下: xargs说明:xargs 读入stdin的值, 并默认以空白或者回车作为分隔符,将分割的值作为参数传给后面紧接着的的命令行操作.- ...

  5. Mark一个代码量统计工具-Statistic

    安装方式 IDEA.Goland系列插件市场搜索Statistic 简单说明 统计纬度比较丰富 基本覆盖常见纬度,如代码行数,文件大小等,各指标取最大最小及平均值. 统计目录为当前项目目录 只有在当前 ...

  6. 【IDEA插件】—— 代码量统计工具Statistic

    1.下载 1.打开idea设置界面,选择 plugins标签 2.搜索“Statistic”插件,点击 install 3.重启IDEA 2.使用 1.菜单栏中找到view 2.在下层目录中找到Sta ...

  7. git log 详解 以及代码量统计

    https://git-scm.com/book/zh/v1/Git-%E5%9F%BA%E7%A1%80-%E6%9F%A5%E7%9C%8B%E6%8F%90%E4%BA%A4%E5%8E%86% ...

  8. Git 常用命令和统计代码量

    摘要 分享Git日常操作中常用的命令,分享如何统计在项目中贡献的代码量. 下面列出Git bash常用命令. 1. git clone **(项目地址) 克隆一个git项目到本地,将git项目拉取到本 ...

  9. Mysql分库分表导出导入和数据量统计测试

    需求:添加创建了分库分表后,业务可能将数据已经写入,但未来得及接入到otter汇总库.接入汇总库前需要初始化这部分数据. 1.导出 ip_port_list ) len=${#ip_port_list ...

随机推荐

  1. docker安装文档

    Docker离线安装以及本地yum源构建http://blog.csdn.net/joniers/article/details/64122820http://blog.csdn.net/wsscy2 ...

  2. Django知识点_梳理

  3. Codeforces Round #606 E

    题:https://codeforces.com/contest/1277/problem/E 题意:给定无向图,求有多少个pair之间的简单路径一定要经过给定的点a和b(pair中任何一个都不是a或 ...

  4. GIL全局解释器锁-死锁与递归锁-信号量-event事件

    一.全局解释器锁GIL: 官方的解释:掌握概念为主 """ In CPython, the global interpreter lock, or GIL, is a m ...

  5. CSS样式表------第一章:样式表的基本概念

    CSS(Cascading Style Sheets,层叠样式表),控制页面样式外观,作用是美化HTML网页. 一. 样式表的基本概念 1.样式表的分类 (1)内联样式表  -----放在元素的开始标 ...

  6. ASP.NET防止连续多次点击提交按钮 导致页面重复提交

    PS:实际使用中发现,第①种方法在火狐浏览中有时候有问题.第2种方法,在各个浏览器中都没问题 近做项目遇到了这样的情况: 公司网络比平常慢了不少,在点击保存按钮提交页面后需等待挺长的一段时间,忍不住手 ...

  7. The sequence and de novo assembly of the giant panda genome.ppt

    sequencing:使用二代测序原因:高通量,短序列 不用长序列原因: 1.算法错误率高 2.长序列测序将嵌合体基因错误积累.嵌合体基因:通过重组由来源与功能不同的基因序列剪接而形成的杂合基因 se ...

  8. TCP\IP协议簇-各层主要协议帧格式

    本文只是对各协议的概要,详细请参考rfc文件. 官方下载地址:https://tools.ietf.org/rfc/index rfc中文:http://man.chinaunix.net/devel ...

  9. Introduction to Differential Equations,Michael E.Taylor,Page 3,4 注记

    此文是对 [Introduction to Differential Equations,Michael E.Taylor] 第3页的一个注记.在该页中,作者给了微分方程$$\frac{dx}{dt} ...

  10. phpcms添加图片投票

    1phpcms加入投票选项的图片上传功能,从我的文件下载,然后到phpcms目录下直接覆盖即可. 当然这边出现了一个bug,修改投票选项不能修改的bug,只需要修改vote_option_class. ...