运维脚本规范
2016-07-11 21:02
330 查看
目录
前言:
一、命名规范
1.1脚本命名
1.2变量命名
1.3参数命名
1.4函数命名规范
二、编写规范
2.1.基本信息
2.2代码注释规范
2.3空行
2.4缩进
2.5续行
2.6输出
2.7 调用系统变量
2.8 脚本中使用命令
2.9 输入与退出
三、调试
3.1 错误退出
3.2脚本语法检查
3.3调试
前言:
本规范目的是保证运维成员编码的统一。
本规范的核心规则就是脚本的命名规则。
此规范必要是可以打破。
一、命名规范
1.1脚本命名
脚本的名字需与其功能保持一致,让人一看名字就大概知道是干什么用。
1.2变量命名
变量的命名应遵循某种规范,使用"_"作为单词间的分隔符,单词尽量使用全名
如:
1.3参数命名
参数命名原则全用小写
如:
1.4函数命名规范
函数表示的是一个动作,所以它的结构应该是动词+名词,动词必须小写,后面的名称首字母大写,如getMaterialCode。函数命名尽量不要使用缩
写,而且它的名称应该使人一目了然,能够从名称就知道这个函数的功能。当函数名称不足以表达其功能时,应使用在函数头部加上让调用者足够明白的注释。
如下面例子:
二、编写规范
2.1.基本信息
(1)在每个脚本模块的最上面,勿忘记添加开头#!/bin/bash
(2)脚本编写人(使用英文名或中文拼音缩写)
(3)脚本创建时间、
(4)脚本修改时间、修改说明、输入参数、输出参数、
(5)脚本描述等。
如下面例子:
可通过.vimrc文件编辑脚本时,自动在文件头加信息
2.2代码注释规范
注释务必做到准确简洁,能够充分表达代码实现的功能。
例如:
2.3空行
空行是区分代码块与块的间隔,在函数之间必须加上空行;而在函数内部,变量声明块和实现块(实现块指除变量声明外的其他代码)要使用空行来间隔,实现块的内部,通过空行来标识一个功能段。
2.4缩进
必须严格执行缩进,变量声明块不缩进,实现块必须保证全部缩进(不可能有实现块是行首对齐的);对于基本的控制结构来说,必须要有缩进,如IF、DO、WITH、FOR、WHILE块。
2.5续行
对于过长的语句来说,必须使用续行,续行位置要有明显意义,例如,sql ="SELECT [code],[name] FROM [Person]"_&"WHERE [code] LIKE'001%'"。
对于使用比较频繁的代码块来说,最好将其写成函数,并尽量将功能复杂的大函数拆分成小函数。
2.6输出
非交互式脚本,后台运行的脚本,脚本不允许输出内容到屏幕上,一律定向到/dev/null
例如:
2.7 调用系统变量
脚本中需要调用系统变量时,需要在脚本中重新定义该变量
例如:
2.8 脚本中使用命令
脚本中使用系统命令时,需在命令行正确执行,测试得出正确结果,再将命令行中执行正确的命令粘贴至脚本中
2.9 输入与退出
脚本需要从参数或者直接脚本中定义调用文件时,需要判断文件是否存在
例如:
三、调试
3.1 错误退出
脚本非注释开头加上set -e,当脚本执行错误时,中断脚本执行,防止脚本发生死循环
3.2脚本语法检查
脚本非注释开头加上set -n,读一遍脚本中的命令但不执行,验证脚本是否能正常执行
3.3调试
脚本非注释开头加上set -x,判断哪里出错。
前言:
一、命名规范
1.1脚本命名
1.2变量命名
1.3参数命名
1.4函数命名规范
二、编写规范
2.1.基本信息
2.2代码注释规范
2.3空行
2.4缩进
2.5续行
2.6输出
2.7 调用系统变量
2.8 脚本中使用命令
2.9 输入与退出
三、调试
3.1 错误退出
3.2脚本语法检查
3.3调试
前言:
本规范目的是保证运维成员编码的统一。
本规范的核心规则就是脚本的命名规则。
此规范必要是可以打破。
一、命名规范
1.1脚本命名
脚本的名字需与其功能保持一致,让人一看名字就大概知道是干什么用。
1.2变量命名
变量的命名应遵循某种规范,使用"_"作为单词间的分隔符,单词尽量使用全名
如:
参数命名原则全用小写
如:
函数表示的是一个动作,所以它的结构应该是动词+名词,动词必须小写,后面的名称首字母大写,如getMaterialCode。函数命名尽量不要使用缩
写,而且它的名称应该使人一目了然,能够从名称就知道这个函数的功能。当函数名称不足以表达其功能时,应使用在函数头部加上让调用者足够明白的注释。
如下面例子:
2.1.基本信息
(1)在每个脚本模块的最上面,勿忘记添加开头#!/bin/bash
(2)脚本编写人(使用英文名或中文拼音缩写)
(3)脚本创建时间、
(4)脚本修改时间、修改说明、输入参数、输出参数、
(5)脚本描述等。
如下面例子:
注释务必做到准确简洁,能够充分表达代码实现的功能。
例如:
空行是区分代码块与块的间隔,在函数之间必须加上空行;而在函数内部,变量声明块和实现块(实现块指除变量声明外的其他代码)要使用空行来间隔,实现块的内部,通过空行来标识一个功能段。
2.4缩进
必须严格执行缩进,变量声明块不缩进,实现块必须保证全部缩进(不可能有实现块是行首对齐的);对于基本的控制结构来说,必须要有缩进,如IF、DO、WITH、FOR、WHILE块。
2.5续行
对于过长的语句来说,必须使用续行,续行位置要有明显意义,例如,sql ="SELECT [code],[name] FROM [Person]"_&"WHERE [code] LIKE'001%'"。
对于使用比较频繁的代码块来说,最好将其写成函数,并尽量将功能复杂的大函数拆分成小函数。
2.6输出
非交互式脚本,后台运行的脚本,脚本不允许输出内容到屏幕上,一律定向到/dev/null
例如:
脚本中需要调用系统变量时,需要在脚本中重新定义该变量
例如:
脚本中使用系统命令时,需在命令行正确执行,测试得出正确结果,再将命令行中执行正确的命令粘贴至脚本中
2.9 输入与退出
脚本需要从参数或者直接脚本中定义调用文件时,需要判断文件是否存在
例如:
3.1 错误退出
3.2脚本语法检查
3.3调试
相关文章推荐
- CSS注释、命名、继承性、样式排序等CSS技巧的小结
- Redis实现信息已读未读状态提示
- 计算机信息处理
- 解析MYSQL显示表信息的方法
- C#获取进程或线程相关信息的方法
- 如何统计在一篇文章中某个单词出现了几次,以及第一次出现的位置
- Linux系统下php获得系统分区信息的方法
- C#实现为类和函数代码自动添加版权注释信息的方法
- C/C++实现对STORM运行信息查看及控制的方法
- C#获得文件属性信息的实现方法
- C#获取程序文件相关信息的方法
- javascript函数命名的三种方式及区别介绍
- 深入理解JavaScript系列(2) 揭秘命名函数表达式
- 使用迭代器 遍历文件信息的详解
- 对js关键字命名的疑问介绍
- C#检查远程或本地磁盘使用率
- 路由信息协议RIP
- C++获得其他程序窗体控件中信息的方法
- C#推送信息到APNs的方法
- JavaScript获取浏览器信息的方法