概述

本文从一段统计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. Kali 安装 Google 中文输入法

    前言 安装了 Linux 并设置中文后,为了操作起来更便捷准备安装一个中文输入法 之前安装搜狗输入法,由于搜狗输入法基于 qt4,估计短期是 GG 了 所以这次选择了 Google 输入法 以下是安装 ...

  2. python,pandas常用函数

    一.rename,更改df的列名和行索引 df=pd.DataFrame(np.arange(,).reshape(,)) print(df) print(type(df)) 结果为: <cla ...

  3. xcode6 Images.xcassets添加LaunchImage

    不使用LaunchScreen.xib,通过Images.xcassets新建LaunchImage做登陆界面 步骤: 1.创建LaunchImage

  4. crontab不执行service命令

    我这里的需求是每30分钟重启一次 写成下面的格式就可以正确执行了,后面执行的命令写绝对路径 */30 * * * * /usr/bin/supervisorctl restart all

  5. VS2010 保护视力 背景色设置

    vs2010——工具——选项---环境——字体和颜色——纯文本——项背景色——自定义 色调:88 饱和度:92 亮度:209

  6. SpringMVC插件安装、环境配置及快速入门_学习笔记

    SpringMVC 是现在广泛应用的框架结构,我也只是一个初学者,一遍学习一遍梳理整合,如有错误,希望大神指点,别误人. MVC :Model-View-Control 框架性质的C 层要完成的主要工 ...

  7. gpio 的配置

    1.时钟使能 B引脚RCC时钟脉冲启动.|(或)表示只要第三个为1就行. 也可以写为RCC_APB2ENR  | = 0X0008; 2.配置GPIO的输出模式以及速度 3 . 如果是 0号引脚:GP ...

  8. ckeditor深入挖掘吃透

  9. Bc-数组-Stack

    1.栈,堆栈,先进后出 2.栈的几个操作: > 入栈,push > 出栈,pop > 获取栈顶元素,peek > 获取栈中共有元素个数,getSize > 是否为空,is ...

  10. OpenCV 特征点检测

    #include <stdio.h> #include <iostream> #include "opencv2/core/core.hpp" #inclu ...