1、脚本文件名命名规范
Linux 系统区分英文字符的大小写。比如,myfile, Myfile 和 myFILE表示的是三个不同的文件。命名目录和命名文件的规则是相同的。除非有特别的原因,否则用户创建的文件和目录名要使用小写字符。大多数的 Linux 命令也使用小写字符。
1.1   Linux 系统下的文件名长度最多可到256个字符。
1.2   通常情况下,文件名的字符包括:字母、数字、"."(点)、"_"(下划线)和"-"(连字符)。Linux 允许在文件名中使用除上述符号之外的其它符号, 还有"?"(问号),"*"(星号), " "(空格), "$"(货币符), "&", 扩号等等。在文件名中应尽量避免使用这些字符。文件名中可以有" "(空格),但建议用户用"_"(下划线)来替代。例如:My_file。
1.3   脚本文件名的命名,不能以数字开头,例如:1meeting。
1.4   脚本文件名的命名,尽量使用英文单词、词组或短句的缩写,以方便管理脚本,起到见文生意的效果。例如:checklocalcpu.sh。
1.5   由于脚本文件会被不断的完善,所以脚本可能会被添加新的功能或修改某些不足,我们定义脚本的格式如下:
脚本作用.主版本号.修改次数.shell类型
例如:sendfile.1.0.sh
Sendfile.1.0.sh这个文件名说明该脚本用于发送文件,主脚本号为1,即为原始功能的脚本,修改次数为0,即说明该脚本为原始版,未经过修改。脚本名称的变化随脚本修改而修改,演化如下。
Sendfile.1.0.sh à sendfile.1.10.sh àsendfile.2.0.sh
1.6   为区别不同的脚本,在定义脚本名称的时候,给脚本加上相应的扩展名以区分不同脚本使用的shell。常用的shell类型有sh、bash、csh、ksh等。例如:monitorservice.1.0.sh(sh/bash脚本),monitorservice.1.0.csh,monitorhost.1.0.ksh。
2、变量命名规范
在linux系统中,变量的种类有环境变量,本地变量,位置变量,特殊变量。通常在脚本当中我们根据变量的存活范围给予区分成两类,全局变量和局部变量。
2.1全局变量
全局变量,指变量在从定义开始,在整个脚本中都在具有普遍意义,变量的生命周期在变量定义时到脚本结束。
全局变量的命名遵循以下规则:
1.         变量名可以由数字和字母组成;
2.         使用Pascal命名法(所有单词第一个字母大写);
3.         名字尽量不使用缩写,除非它是众所周知的;
4.         名字可以有两个或三个单词组成,但通常不应多于三个。
5.         不要使用下划线字符。
PathName,PATHNAME,Path_Name,pathname。以上四种变量名的命名方式,只有PathName是符合以上的定义。
2.2局部变量
局部变量,指变量在脚本代码中的部分代码片段有特定的意义,虽然它的生存周期也是从定义变量开始到脚本结束。局部变量在for…in…语句中最常用到。
全局变量的命名遵循以下规则:
1.         变量名可以由数字和字母组成;
2.         变量名采用全部英文字符小写的方式;
3.         变量名称尽量使用缩写,最好不要超过6个字符。
2.3变量引用规范
在shell中,变量的引用,通常使用“$变量名”的方式进行引用。然而在脚本中,常常需要将变量值和字符串混合输出,结果导致输出的结果不符合实际的需求。因此统一定义对变量的引用采用以下的引用方式
${变量名},例如${port},${ipaddr}…
3、脚本代码注释规范
良好的脚本代码注释习惯可以大大增加脚本的可读性。为读懂脚本,修改脚本提供了快捷的途径。具体而言,脚本的代码注释应该写在哪个部分,怎么写。
脚本代码注释可以使用”#”和”;(分号)”两种方式进行注释。#一般用于描述性的注释,旨在说明代码的作用或怎么使用。而;通常用于示例性的注释,特别是在一些配置文件中常常会用到,因此我们沿用这两种方式来对我们的脚本进行注释。
在一个脚本的代码的开头部分我们一般会做一个描述性的注释,主要说明脚本的功能和作用。可以加上作者和联系方式以方便交流。对脚本的注释不宜每行每行都进行注释,这样使代码的结构显得特别凌乱。我们建议将脚本的功能进行模块化,然后对脚本各模块之前进么简要的注释。
4、引用符号使用规范
Shell 中有四种三种引用符号,双引号、单引号和反引号,它们各有各的用途。shell脚本编程中,常常会遇到在同一个语句中需要引用字符(串),变量,命令执行结果或特殊字符时。由于没有正确使用引用符号而产生了一些莫名其妙的结果。为了解决这个问题,对引用符号的使用规定如下:
1、    尽量少用单引号,对一个字符串需要进行多个特殊字符进行屏蔽特殊含义时才使用单引号;
2、    对极个特殊字符进行屏蔽特殊含义时,使用\(反斜线)进行屏蔽;
3、    使用单引号进行屏蔽字符时,单引号内一般不使用其它引用符号,除非是打印特殊符号本身;
4、    使用反引号进行执行一个shell命令时,反引号内一般加其它引用符号,除非需要进行屏蔽特殊字符时才使用反斜线和单引号。
6、脚本函数定义规范
在shell脚本编程,通常把特定功能模块写成函数,可以在多个脚本中进行调用。为了区别变量名与函数名的不同。对函数名做以下定义:
1.         变量名可以由数字和字母组成;
2.         使用驼峰命名法(从第二个单词开始,每个单词首字母大写);
3.         名字尽量不使用缩写,除非它是众所周知的;
4.         名字可以有两个或三个单词组成,但通常不应多于三个。

转载于:https://blog.51cto.com/sop2008/844591

6016.Linux shell脚本编程规范(第1版)相关推荐

  1. Linux命令行与shell脚本编程大全:第2版

    <Linux命令行与shell脚本编程大全:第2版> 基本信息 作者: (美)布卢姆(Blum,R.) 布雷斯纳汉(Bresnahan.C.) [作译者介绍] 译者: 武海峰 丛书名: 图 ...

  2. 《Linux命令行与shell脚本编程大全 第3版》Shell脚本编程基础---34

    以下为阅读<Linux命令行与shell脚本编程大全 第3版>的读书笔记,为了方便记录,特地与书的内容保持同步,特意做成一节一次随笔,特记录如下: 转载于:https://www.cnbl ...

  3. 《Linux命令行与shell脚本编程大全 第3版》Shell脚本编程基础---02

    以下为阅读<Linux命令行与shell脚本编程大全 第3版>的读书笔记,为了方便记录,特地与书的内容保持同步,特意做成一节一次随笔,特记录如下: 转载于:https://www.cnbl ...

  4. 《Linux命令行与shell脚本编程大全 第3版》Shell脚本编程基础---20

    以下为阅读<Linux命令行与shell脚本编程大全 第3版>的读书笔记,为了方便记录,特地与书的内容保持同步,特意做成一节一次随笔,特记录如下: 转载于:https://www.cnbl ...

  5. 《Linux命令行与shell脚本编程大全 第3版》Shell脚本编程基础---43

    以下为阅读<Linux命令行与shell脚本编程大全 第3版>的读书笔记,为了方便记录,特地与书的内容保持同步,特意做成一节一次随笔,特记录如下: 转载于:https://www.cnbl ...

  6. Linux shell脚本编程(三)

    Linux shell脚本编程 -------------------------------------------------------------------- 注:如果你对python感兴趣 ...

  7. Linux shell脚本编程(二)

    Linux shell脚本编程(二) -------------------------------------------------------------------- 注:如果你对python ...

  8. Linux shell脚本编程(一)

    -------------------------------------------------------------------- 注:如果你对python感兴趣,我这有个学习Python基地, ...

  9. 《Linux命令行与shell脚本编程大全 第3版》高级Shell脚本编程---32

    以下为阅读<Linux命令行与shell脚本编程大全 第3版>的读书笔记,为了方便记录,特地与书的内容保持同步,特意做成一节一次随笔,特记录如下: 转载于:https://www.cnbl ...

  10. 《Linux命令行与shell脚本编程大全 第3版》Linux命令行---10

    以下为阅读<Linux命令行与shell脚本编程大全 第3版>的读书笔记,为了方便记录,特地与书的内容保持同步,特意做成一节一次随笔,特记录如下: 转载于:https://www.cnbl ...

最新文章

  1. 大数据遇上大型机 结果会如何?
  2. Ubuntu 当黑屏解决方案安装
  3. mysql镜像远程连接_Docker创建MySQL镜像并成功进行远程连接
  4. SSD安装及训练自己的数据集
  5. 60 个神级 VS Code 插件!
  6. linux wget 命令_我如何使用wget Linux命令恢复丢失的图像
  7. sed、head、grep、tail、EOF
  8. Android Content Provider基础
  9. iOS9 开发新特性 Spotlight使用
  10. paip.使用WORD进行拆分段落单个汉字转表格.txt
  11. 将json文件格式转化成Excel表格形式
  12. 计算机桌面图标损坏,win7系统的电脑桌面图标受到损坏要如何修复
  13. 利用计算机的随机模拟结果帮助学生,数学《教学反思》 初中白小曼
  14. Node.js从入门到精通
  15. C/C++编程学习 - 第5周 ③ 圆锥体的体积
  16. Unison 的相关参数介绍
  17. 某试卷由26道题c语言,c语言模拟试题
  18. amap和amapcrap使用
  19. GNE: 4行代码实现新闻类网站通用爬虫
  20. idear右边的依赖视图没了_APP开发中出现提到的Idear是什么意思

热门文章

  1. java 判断是合法语言_使用Java 怎么实现一个判断IP地址是否合法的功能
  2. Android-7.0-Nuplayer-启动流程
  3. UML类图中箭头和线条的含义和用法
  4. 君正X1500基于Minios的crash分析
  5. linux内存源码分析 - 内存池
  6. L1-049__056
  7. activiti 启动tomcat乱码_Activiti 流程图片显示乱码问题分析与解决
  8. 增强型植被指数EVI、ndvi数据、NPP数据、GPP数据、土地利用数据、植被类型数据、降雨量数据
  9. spark中的广播变量与累加器
  10. 【知识蒸馏】Distilling the Knowledge in a Neural Network