Shell代码规范[个人]
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Shell代码规范[个人]
前言:随着写的SHELL程序越来越多,发现自己每次写都有不同的习惯或者定义了不同的东西,变量名定义得不一样,整个程序缩进不统一,没有注释等问题,等我回过头看这些程序的时候发现很麻烦。所以想到写个自己的shell代码规范。
作者: Ajian
时间: 2009-02-19
文档名: Shell代码规范
版本: 1.0
用途: 规范Shell代码书写,方便查看与修改。
1 概述
1.1 目的
定义Shell脚本命名和编码规范,统一管理Shell脚本,便于自己和别人查看,提高代码书写速度和美观,暂时只对自己进行约束,其它人只供参考。
1.2 概述
本文主要根据Fedora Core 4.0的特点,描述安装脚本、OS初始脚本、补丁制作等方面的代码编写规范,可能大部分还是根据自己的习惯与反复思考后的结果,同样也参考了PHP
代码规范等。
1.3 开发工具
shell脚本是个文件,没有开发环境,FC4图形环境下,可用gedit、vi、vim、joe等,推荐使用vim因为这个最通用,他的功能同样是很强大,如果想在图形化下可以用gvim,并将环境设置为sh高亮显示,方法:1)cp /etc/vim/vimrc ~/.vimrc 2) vim ~/.vimrc 去掉”syntax on,并且;Windows下,可用ultraedit。文件保存时,有汉字提示的Shell脚本文件,文件保存时,字符编码必须为GB18030/GBK/GB2132 (UTF-8) 三种格式之一。
2 对象命名规范
2.1 命名约定
1.本文档的命名约定是系统配置文件、脚本文件;
2.文件名、变量名、函数名不超过20个字符;
3.命名只能使用英文字母,数字和下划线,只有一个英文单词时使用全拼,有多个单词时,使用下划线分隔,长度较长时,可以取单词前3~4个字母。
4.文件名全部以小写命名,不能大小写混用(通过U盘交换文件时,大小写可能会丢失,即:大写文件名可能会全部变成小写文件名);
5.避免使用Linux的保留字如true、关键字如PWD等(见附表);
6.从配置文件导出配置时,要注意过滤空行和注释
2.2代码开头约定
1、第一行一般为调用使用的语言
2、下面要有这个程序名,避免更改文件名为无法找到正确的文件
3、版本号
4、更改后的时间
5、作者相关信息
6、该程序的作用,及注意事项
7、版权与是否开放共享GNU说明
8、最后是各版本的更新简要说明
如下面的例子:
#!/bin/bash
#
------------------------------------------------------------------------------- # Filename: check_mem.sh
# Revision: 1.1
# Date: 2009/02/10
# Author: Ajian
# Email: ajian521#
# Website:
# Description: Plugin to monitor the memory of the system
# Notes: This plugin uses the "" command
#
------------------------------------------------------------------------------- # Copyright: 2009 (c) Ajian
# License: GPL
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty
# of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# you should have received a copy of the GNU General Public License
# along with this program (or with Nagios);
#
# Credits go to Ethan Galstad for coding Nagios
# If any changes are made to this script, please mail me a copy of the changes #
------------------------------------------------------------------------------- #Version 1.0
#The first one , can monitor the system memory
#Version 1.1
#Modify the method of the script ,more fast
2.3 缩进
由于Shell没有很好的编辑环境,所以,建议用四个空格为基数进行缩进,好处在不同的环境下TAB可能代表的空格数不同,造成代码的错乱。用TAB他的优点是速度快方便,可以在编辑的时候也用TAB,但需要转换。
可以在更改编辑器,Windows的就不说了,主要是VIM
:set softtabstop=4
注意不要使用 :set tabstop=4 上面那个是同时把这一个TAB转换为四个空格,而这一条是定义TAB为四个空格,如果到其它编辑器上就会看到默认8个空格的情况,那就会不美观了。
另外将原有的TAB转换为空格,:retab
如果想让刚才的配置永久生效需要改动vim的配置文件 vim ~/.vimrc,更多详细的有用的配置见“VIM配置总结”
2.4 页宽
每行不要超过80字,如果超出,建议用“\”折行,有管道的命令行除外。
2.5 环境变量
变量:全部是大写字母