全部博文(48)
分类: Python/Ruby
2009-09-20 00:02:14
SHELL编写原则:
1、 要有注释
2、 要有日志
3、 需告警
4、 避免硬编码情况严重(可维护性差)
5、 避免代码可读性差
- - - - - - - - - - - - - - - -- - - - - - - - - - - - - - - -
以下主要围绕4、5展开讨论和阐述:
1).将系统功能和实现细节作为不同文件
只需编辑主脚本就可以升级或增强系统功能,同时将实现细节保留在主文件之外。
实现方式:在 bash中,"source"命令从文件中读入 bash语句,然后执行它们,就好象它们直接出现在 "source"命令所在的文件中一样
2).使用函数
2.1) 添加脚本功能性
提高整体script的执行效能外(因为已被加载),
还可以节省许多重复的代码...
2.2) 使代码模块化
当遇到些非标准的动作时,可以在函数中分成主函数,和一个新函数,新函数只包含合理的缺省操作。
当有非标准动作时,在细节文件中覆盖新函数,使其包含非标准的动作
说明:在执行(source) 细节文件前定义新函数,如果细节文件有同名新函数,将覆盖前面定义的缺省版本。如果没有,则使用缺省新函数。所以细节文件要在函数定义之后source;
2.3) 函数注意要点
在每个函数的第一行,显式 "cd"到想要的目录,因为,随着代码变得越来越模块化而不是线形化,出现疏忽而在错误的当前工作目录中执行函数的可能性也变大。"cd"命令显式地使我们处于正确的位置,并防止以后出现错误 -这是重要的步骤,特别是在函数中删除文件时更是如此。
then ….. just try :)
10.对于自动脚本, 增加手工输入参数的功能