“代码量统计脚本”
概述
本文从一段统计C/C++程序脚本入手,记录shell脚本常用和重要的知识点。
代码量统计程序
文件名称,count_code_line.sh
| 1 | #!/bin/bash # 统计代码行数 去除空格和注释 | 
代码解释
使用方式
两种使用方式。
方式一,在程序所在目录,执行
| 1 | ./count_code_line.sh | 
统计当前目录下代码量。
方式二,在程序所在目录,统计其他源代码目录下代码量,例如统计 /home/user/code/。操作方式如下
| 1 | ./count_code_line.sh /home/user/code/ | 
逐行解释
- #!/bin/bash,在文件第一行,指明使用/bin/bash解释程序,其他行以#开头的语句,表示注释
- function count_dir(),定义一个名为count_dir的函数
- total1=0,定义变量total1并初始化为0
 4.
 1 
 2
 3
 4for input in $* 
 do
 .....
 done
for循环遍历$*内容,input指示$* 中每一个元素。
$*是一个特殊变量,传递给函数或者shell脚本参数列表。
- count=`**`,表示执行”****“中内容,并将返回值保存到count变量
- res=$[ total1 + count ] ,求算数和
- total1=$res 取res中的值,保存到total1
- echo $res 输出res中的值
- 1 
 2
 3- if [ $# -eq 0 ];then 
 else
 fi
if else 语句
- [ $# -eq 0 ], 判断$# 是否为0
shell重要知识点
特殊变量
$0    当前脚本的文件名
$n    传递给脚本或函数的参数。是一个数字,表示第几个参数。例如,第一个参数是$1,第二个参数是$2。
$#    传递给脚本或函数的参数个数。
$    传递给脚本或函数的所有参数。
$@    传递给脚本或函数的所有参数。被双引号(“”)包含时,与 $ 稍有不同,下面将会讲到。
$?    上个命令的退出状态,或函数的返回值。
$$    当前Shell进程ID。对于 Shell 脚本,就是这些脚本所在的进程ID。
“代码量统计脚本”的更多相关文章
- [statsvn]-svn代码量统计
		用statasvn进行代码量统计的时候,第一步需要获取到项目的日志,但是我本机的svn1.4没有安装命令行,重新运行1.4的安装包也没有命令行的选项... 那就升级到最新的svn1.8好了,下载最新的 ... 
- IDEA 代码量统计(Statistic)
		IDEA 代码量统计(Statistic) 1.1 前言 项目到了一定阶段,都会想要看看项目的代码量情况,这里主要使用插件Statistic进行代码统计查看. 1.2 安装插件步骤 找到插件市场入口并 ... 
- git 统计代码量  shell脚本
		#!/bin/bash # 统计代码量 # 使用方法: sh gitstat.sh "2017-11-01" "2017-11-30" "JamKon ... 
- shell scripts 之 代码量统计
		代码统计1 文件only中的内容为多个文件的文件名,code如下: xargs说明:xargs 读入stdin的值, 并默认以空白或者回车作为分隔符,将分割的值作为参数传给后面紧接着的的命令行操作.- ... 
- Mark一个代码量统计工具-Statistic
		安装方式 IDEA.Goland系列插件市场搜索Statistic 简单说明 统计纬度比较丰富 基本覆盖常见纬度,如代码行数,文件大小等,各指标取最大最小及平均值. 统计目录为当前项目目录 只有在当前 ... 
- 【IDEA插件】—— 代码量统计工具Statistic
		1.下载 1.打开idea设置界面,选择 plugins标签 2.搜索“Statistic”插件,点击 install 3.重启IDEA 2.使用 1.菜单栏中找到view 2.在下层目录中找到Sta ... 
- 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% ... 
- Git 常用命令和统计代码量
		摘要 分享Git日常操作中常用的命令,分享如何统计在项目中贡献的代码量. 下面列出Git bash常用命令. 1. git clone **(项目地址) 克隆一个git项目到本地,将git项目拉取到本 ... 
- Mysql分库分表导出导入和数据量统计测试
		需求:添加创建了分库分表后,业务可能将数据已经写入,但未来得及接入到otter汇总库.接入汇总库前需要初始化这部分数据. 1.导出 ip_port_list ) len=${#ip_port_list ... 
随机推荐
- docker安装文档
			Docker离线安装以及本地yum源构建http://blog.csdn.net/joniers/article/details/64122820http://blog.csdn.net/wsscy2 ... 
- Django知识点_梳理
- Codeforces Round #606 E
			题:https://codeforces.com/contest/1277/problem/E 题意:给定无向图,求有多少个pair之间的简单路径一定要经过给定的点a和b(pair中任何一个都不是a或 ... 
- GIL全局解释器锁-死锁与递归锁-信号量-event事件
			一.全局解释器锁GIL: 官方的解释:掌握概念为主 """ In CPython, the global interpreter lock, or GIL, is a m ... 
- CSS样式表------第一章:样式表的基本概念
			CSS(Cascading Style Sheets,层叠样式表),控制页面样式外观,作用是美化HTML网页. 一. 样式表的基本概念 1.样式表的分类 (1)内联样式表 -----放在元素的开始标 ... 
- ASP.NET防止连续多次点击提交按钮 导致页面重复提交
			PS:实际使用中发现,第①种方法在火狐浏览中有时候有问题.第2种方法,在各个浏览器中都没问题 近做项目遇到了这样的情况: 公司网络比平常慢了不少,在点击保存按钮提交页面后需等待挺长的一段时间,忍不住手 ... 
- The sequence and de novo assembly of  the giant panda genome.ppt
			sequencing:使用二代测序原因:高通量,短序列 不用长序列原因: 1.算法错误率高 2.长序列测序将嵌合体基因错误积累.嵌合体基因:通过重组由来源与功能不同的基因序列剪接而形成的杂合基因 se ... 
- TCP\IP协议簇-各层主要协议帧格式
			本文只是对各协议的概要,详细请参考rfc文件. 官方下载地址:https://tools.ietf.org/rfc/index rfc中文:http://man.chinaunix.net/devel ... 
- Introduction to Differential Equations,Michael E.Taylor,Page 3,4 注记
			此文是对 [Introduction to Differential Equations,Michael E.Taylor] 第3页的一个注记.在该页中,作者给了微分方程$$\frac{dx}{dt} ... 
- phpcms添加图片投票
			1phpcms加入投票选项的图片上传功能,从我的文件下载,然后到phpcms目录下直接覆盖即可. 当然这边出现了一个bug,修改投票选项不能修改的bug,只需要修改vote_option_class. ... 
