【Shell脚本编程系列】Shell脚本开发的习惯和规范
1、开头指定脚本解释器
#!/bin/sh或#!/bin/bash
2、开头加版本版权信息
#Date
#Author
#Function
#Version
提示:可配置vim编辑文件时自动加上以上信息,方法是修改~/.vimrc配置文件
3、脚本中不用中文注释
尽量用英文注释,防止本机或切换系统环境后出现中文乱码的困扰
4、尽量以.sh为扩展名
Script-name.sh
5、代码书写优秀习惯
1)成对的内容一次性写出来,防止遗漏:{} [] ‘’ “”
2)[]中括号两端要有空格
3)流程控制语句一次完成
If语句格式一次完成:
If 条件内容
then
内容
fi
for循环格式一次完成:
for
do
内容
done
4)通过缩进让代码易读
7、脚本文件名命名规范
Linux系统区分英文字母大小写,命令目录和命名文件的规则是一样的,除非特别需要都要使用小写字母。
1)文件名的字符包括:字母 数字 点 下划线 连字符 (问号 星号 空格 货币符 括号 )少用。
2)文件脚本名的规范:不以数字开头
3)脚本文件的命名,尽量使用英文单词、词组或断句的缩写,以方便管理脚本,起到见文生意的效果。
4)由于脚本文件会被不断完善,所以脚本可能会被添加新的功能或修改某些不足,我们定义脚本的格式如下:脚本作用.主版本好.修改次数.shell类型
5)为了区别不同的脚本,在定义名称的时候,给脚本加上相应的扩展名以区分不同脚本使用的shell。常用的有sh bash ksh
8、变量命名规范
在linux系统中,变量的种类有环境变量、本地变量。位置变量、特殊变量。通常我们根据变量的存活范围分为两类:全局变量和局部变量。
1)全局变量:从定义开始,在整个脚本中都有普遍意义,变量的生命周期在变量定义时到脚本结束
变量名可以和数字和字母组成
使用Pascal命名法
名字尽量不使用缩写
名字可以由两个或三个单词组成,但通常不应该多于3个
不要使用下划线字符
2)局部变量:在脚本代码中的部分代码片段有特定的意义,虽然他的生存周期也是从定义变量开始到脚本结束。在流程控制中常用
变量名可以由数字和字母组成
变量名采用全部英文符小写的方式
变量名称尽量使用缩写,最好不要超过6个字符
3)变量使用规范
在shell中变量的引用,通常使用”$变量名”的方式进行引用,然而在脚本中,常常需要将变量值和字符串混合输出,结果导致输出的结果不符合实际的需求,所以统一定义对变量的引用采用以下的引用方式${变量名}
9、脚本代码注释规范
良好的脚本代码注释习惯可以大大增加脚本的可读性。为读懂脚本,修改脚本提供了快捷的途径。
脚本代码注释可以使用#和分号两种方式进行注释,#一般用于描述性的注释,旨在说明代码的作用或怎么使用,而分号通常用于示例性的注释,特别是在一些配置文件中常常会用到。
10、引用符号使用规范
Shell中有三种引用符号:双引号、单引号和反引号
尽量少用单引号,对一个字符串需要进行多个特殊字符进行屏蔽特殊含义时才使用单引号;
对特殊字符进行屏蔽特殊含义时,使用反斜线进行屏蔽
使用单引号屏蔽字符时,单引号内一般不使用其他引用符号,除非是打印特殊符号本身
使用反引号进行执行一个shell命令时,反引号一般加其他引用符号,除非需要进行屏蔽特殊字符时才使用反斜线和单引号。
11、脚本函数定义规范
在shell脚本编程,通常把特定功能模块写成函数,可以在多个脚本中调用,为了区别变量名和函数名的不同,对函数名做如下定义:
变量名可以由数字和字母组成
【Shell脚本编程系列】Shell脚本开发的习惯和规范的更多相关文章
- shell编程系列1--shell脚本中的变量替换
shell编程系列1--shell脚本中的变量替换 变量替换总结: .${变量#匹配规则} # 从头开始匹配,最短删除 .${变量##匹配规则} # 从头开始匹配,最长删除(贪婪模式) .${变量%匹 ...
- (C#)Windows Shell 外壳编程系列7 - ContextMenu 注册文件右键菜单
原文 (C#)Windows Shell 外壳编程系列7 - ContextMenu 注册文件右键菜单 (本系列文章由柠檬的(lc_mtt)原创,转载请注明出处,谢谢-) 接上一节:(C#)Windo ...
- (C#)Windows Shell 外壳编程系列8 - 同后缀名不同图标?
原文 (C#)Windows Shell 外壳编程系列8 - 同后缀名不同图标? (本系列文章由柠檬的(lc_mtt)原创,转载请注明出处,谢谢-) 接上一节:(C#)Windows Shell 外壳 ...
- (C#)Windows Shell 外壳编程系列9 - QueryInfo 扩展提示
原文 (C#)Windows Shell 外壳编程系列9 - QueryInfo 扩展提示 (本系列文章由柠檬的(lc_mtt)原创,转载请注明出处,谢谢-) 接上一节:(C#)Windows She ...
- (C#)Windows Shell 外壳编程系列6 - 执行
原文(C#)Windows Shell 外壳编程系列6 - 执行 (本系列文章由柠檬的(lc_mtt)原创,转载请注明出处,谢谢-) 接上一节:(C#)Windows Shell 外壳编程系列5 - ...
- (C#)Windows Shell 外壳编程系列5 - 获取图标
(本系列文章由柠檬的(lc_mtt)原创,转载请注明出处,谢谢-) 接上一节:(C#)Windows Shell 外壳编程系列4 - 上下文菜单(iContextMenu)(二)嵌入菜单和执行命令 有 ...
- (C#)Windows Shell 外壳编程系列4 - 上下文菜单(iContextMenu)(二)嵌入菜单和执行命令
(本系列文章由柠檬的(lc_mtt)原创,转载请注明出处,谢谢-) 接上一节:(C#)Windows Shell 外壳编程系列3 - 上下文菜单(iContextMenu)(一)右键菜单 上一节说到如 ...
- (C#)Windows Shell 外壳编程系列2 - 解释,从“桌面”开始展开
(本系列文章由柠檬的(lc_mtt)原创,转载请注明出处,谢谢-) 接上一篇:(C#)Windows Shell 外壳编程系列1 - 基础,浏览一个文件夹 让我们详细解释一下 Shell 编程中最基本 ...
- (C#)Windows Shell 外壳编程系列3 - 上下文菜单(iContextMenu)(一)右键菜单
(本系列文章由柠檬的(lc_mtt)原创,转载请注明出处,谢谢-) 接上一节:(C#)Windows Shell 外壳编程系列2 - 解释,从“桌面”开始展开 这里解释上一节中获取名称的方法 GetD ...
随机推荐
- C#中按模板操作Word —— 如何向Word中插入图片
一.Word对象模型的重叠性分析 本文主要介绍通过书签Bookmark向Word文档中插入图片的方法.在此之前我们先简单讨论下Word对象模型的重叠性.如果你对Word对象模型还不熟悉,请参考本专栏第 ...
- R语言colorRampPalette函数-创建颜色梯度(渐变色)
在绘热图时,需要将数值映射到不同的颜色上,这时就需要一系列的颜色梯度 colorRampPalette 函数支持自定义的创建一系列的颜色梯度 代码示例: > colors <- color ...
- 【FastJSON】使用JSON.toJSONString()-解决FastJson中“$ref 循环引用”的问题
fastjson 是一个 不错的json格式化工具, 但是在使用时,如果 碰到统一地址对象引用,就会用$ref替代 . 怎么去掉ref呢, 解决方法如下: String mapStr = JSONOb ...
- jsp连接mysql----------第一篇技术类文章
今天做作业连了一天的mysql. 最后我痛定思痛,决定从0開始学习jsp.省的又面临不会的局面. 忙活了一晚上.最终把数据库连接上了,只是.好伤心啊,我连个数据库都这么墨迹. . . <%@ p ...
- scp 链接文件的问题 + tar
将本地的文件上传到服务器上,希望保持相对链接关系.(链接文件和被链接文件都在同一的目录下) 使用scp进行传输时,链接关系不会保存,所以需要解决下.(当然可以使用rsync或tar解决,但是rsync ...
- 组合模式(Composite Pattern) ------------结构型模式
组合模式使用面向对象的思想来实现树形结构的处理和构件,描述了如何将容器对象和叶子对象进行递归组合,实现简单,灵活性好. 组合模式(Composite Pattern):组合多个对象形成树形结构以表示具 ...
- 多页Excel转换成PDF时如何保存为单独文件
通过ABBYY PDF Transformer+图文识别软件,使用PDF-XChange打印机将多页Excel工作簿转换成PDF文档(相关文章请参考ABBYY PDF Transformer+从MS ...
- tomcat和nginx的使用
1.下载tomcat,配置conf/server.xml,在Host节点下添加Context节点,指定程序目录: <Context path="/ol" docBase=&q ...
- css抠图之background-position-背景定位
相信很多喜欢研究网页界面的童鞋都遇到过一个奇妙的现象:网页中很多图片素材被合成在一张图片上. 其实,这是一个非常简单的技术. 要想实现CSS抠图,只需要用到一个属性:background-positi ...
- android studio 导入第三方库的记录
android studio 导入第三方库的记录.jar包 和 库 一.jar包 1.jar包的话很简单,首先换成project模式,将你要用的jar包复制到lib下面.如图 2.然后右键选择Add ...