1、开头指定脚本解释器

#!/bin/sh或#!/bin/bash

2、开头加版本版权信息

#Date

#Author

#Mail

#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脚本开发的习惯和规范的更多相关文章

  1. shell编程系列1--shell脚本中的变量替换

    shell编程系列1--shell脚本中的变量替换 变量替换总结: .${变量#匹配规则} # 从头开始匹配,最短删除 .${变量##匹配规则} # 从头开始匹配,最长删除(贪婪模式) .${变量%匹 ...

  2. (C#)Windows Shell 外壳编程系列7 - ContextMenu 注册文件右键菜单

    原文 (C#)Windows Shell 外壳编程系列7 - ContextMenu 注册文件右键菜单 (本系列文章由柠檬的(lc_mtt)原创,转载请注明出处,谢谢-) 接上一节:(C#)Windo ...

  3. (C#)Windows Shell 外壳编程系列8 - 同后缀名不同图标?

    原文 (C#)Windows Shell 外壳编程系列8 - 同后缀名不同图标? (本系列文章由柠檬的(lc_mtt)原创,转载请注明出处,谢谢-) 接上一节:(C#)Windows Shell 外壳 ...

  4. (C#)Windows Shell 外壳编程系列9 - QueryInfo 扩展提示

    原文 (C#)Windows Shell 外壳编程系列9 - QueryInfo 扩展提示 (本系列文章由柠檬的(lc_mtt)原创,转载请注明出处,谢谢-) 接上一节:(C#)Windows She ...

  5. (C#)Windows Shell 外壳编程系列6 - 执行

    原文(C#)Windows Shell 外壳编程系列6 - 执行 (本系列文章由柠檬的(lc_mtt)原创,转载请注明出处,谢谢-) 接上一节:(C#)Windows Shell 外壳编程系列5 - ...

  6. (C#)Windows Shell 外壳编程系列5 - 获取图标

    (本系列文章由柠檬的(lc_mtt)原创,转载请注明出处,谢谢-) 接上一节:(C#)Windows Shell 外壳编程系列4 - 上下文菜单(iContextMenu)(二)嵌入菜单和执行命令 有 ...

  7. (C#)Windows Shell 外壳编程系列4 - 上下文菜单(iContextMenu)(二)嵌入菜单和执行命令

    (本系列文章由柠檬的(lc_mtt)原创,转载请注明出处,谢谢-) 接上一节:(C#)Windows Shell 外壳编程系列3 - 上下文菜单(iContextMenu)(一)右键菜单 上一节说到如 ...

  8. (C#)Windows Shell 外壳编程系列2 - 解释,从“桌面”开始展开

    (本系列文章由柠檬的(lc_mtt)原创,转载请注明出处,谢谢-) 接上一篇:(C#)Windows Shell 外壳编程系列1 - 基础,浏览一个文件夹 让我们详细解释一下 Shell 编程中最基本 ...

  9. (C#)Windows Shell 外壳编程系列3 - 上下文菜单(iContextMenu)(一)右键菜单

    (本系列文章由柠檬的(lc_mtt)原创,转载请注明出处,谢谢-) 接上一节:(C#)Windows Shell 外壳编程系列2 - 解释,从“桌面”开始展开 这里解释上一节中获取名称的方法 GetD ...

随机推荐

  1. (转)编译android5.1,添加swap分区的方法

    clang++: error: unable to execute command: Killedclang++: error: assembler command failed due to sig ...

  2. c#中//注释和///注释的区别 智能注释 显示换行

    ///会被编译,//不会所以使用///会减慢编译的速度(但不会影响执行速度)///会在其它的人调用你的代码时提供智能感知 也是一种注释,但是这种注释主要有两种作用:1.这些注释能够生成一个XML文件. ...

  3. dubbo学习过程、使用经验分享及实现原理简单介绍

    一.前言 部门去年年中开始各种改造,第一步是模块服务化,这边初选dubbo试用在一些非重要模块上,慢慢引入到一些稍微重要的功能上,半年时间,学习过程及线上使用遇到的些问题在此总结下. 整理这篇文章差不 ...

  4. PHP内置函数生成随机数的方法汇总

    PHP内部生成随机数的方法相比其他方法简单,不需要额外配置,是生成随机数的首选方案. 1 rand函数 rand() 函数可以不加任何参数,就可以生成随机整数.如果要设置随机数范围,可以在函数中设置 ...

  5. VOIP NAT穿越之SIP信令穿越

    本文原创自 http://blog.csdn.net/voipmaker  转载注明出处. 本文是VOIP通信NAT系列专题的第三篇, 本文论述NAT对SIP协议穿越的影响.SIP协议是基于文本的,而 ...

  6. 156 UIImageView 和 CADisplayLink 实现 Tom 汤姆猫动画效果的区别(扩展知识:分组(黄色文件夹)和文件夹引用(蓝色文件夹)区别)

    (1)UIImageView 的动画操作,来自定义循环播放动画(不建议使用,内存消耗大) (2)CADisplayLink 是一个计时器,但是同 NSTimer 不同的是,CADisplayLink ...

  7. windows mongodb最常用命令简单归纳

    在windows安装好了windows,首先记得要把mongodb bin目录路径放在 系统环境变量的path中,确定之后即配置好了mongo的环境变量,在dos命令框中输入mongo会出现如下 版本 ...

  8. geoserver PostGIS的安装和使用

    PostGIS是一个非常流行并且开源的具有空间分析能力的关系型数据库,它作为PostgreSQL数据库的一个插件.PostgreSQL是一个功能非常强大并且开源的关系型数据库.目前项目使用的版本为Po ...

  9. Python爬虫-豆瓣电影 Top 250

    爬取的网页地址为:https://movie.douban.com/top250 打开网页后,可观察到:TOP250的电影被分成了10个页面来展示,每个页面有25个电影. 那么要爬取所有电影的信息,就 ...

  10. docker dockerfile构建自己的tomcat镜像

    文件 1.apache-tomcat-8.5.24.tar.gz, jdk-8u151-linux-x64.tar.gz Dockerfile文件: FROM centosWORKDIR /usrCO ...