zoukankan      html  css  js  c++  java
  • shell编程守则

    * 1 检查和过滤无效参数,以及多余的字符和参数;

    * 2 程序头部应标明程序运行的依赖关系,包括:依赖的软件/命令名称及版本号需求,
    硬件平台等;

    * 3 可能变更的、不确定的文件路径和文件名称,尽可能定义为变量(variable),方便移
    植和维护;

    * 4 必要时记录运行日志(log),并在日志文件头部记录程序名称($0),程序参数($*),
    用户名(whoami),日期时间(date)等信息。必要时还可记录程序结束时的时间;

    * 5 调试代码和临时代码,应用调试开关(switch)控制开启(on)和关闭(off),方便调试
    输出和关闭;

    * 6 程序中记录必要的注释信息;

    * 7 检查要执行、读取、修改的程序和文件是否存在或已安装,是否有执行、可读、修改
    权限;

    * 8 创建新文件前,先确认文件所在目录是否存在,必要时手动创建目录;

    * 9 用命令操作某个文件时,尽可能先复制到临时文件,完成编辑后再复制回目标文件,
    降低可能出现的错误对原始文件的破坏。特别是修改配置文件内部参数的时候;

    * 10 条件判断(if/case)和循环(for/while/until)时,及时跳出(break)语句和退出
    (exit)程序,并记录返回值;

    * 11 条件判断时,详细分析实际运行中最常出现,最多出现的情形,优先判断和运行,提
    升程序效率和性能;

    * 12 多条件、多数值的语句,尽可能改写为数组(array),条件语句,循环语句,结构体
    (construction)等,建立数据骨架,方便维护和扩展;

    * 13 修改或查看配置文件内的参数值时,先检查参数字符串(string)和数值(value)是否
    存在或有效;

    * 14 预留和待处理(todo)的函数(function)和代码,模糊(fuzzy)代码,待修正(fixme)
    代码和缺陷(bug),做好必要的起止标记(begin/end);

    * 15 考虑更多的非标准情况和意外情况,并提前做好预处理。如文件编码不是标准的
    ASCII编码,内存/硬盘/数据卡读取故障,死机/停电,程序意外退出/强行退出或中断等
    等,可能对文件造成的破坏,进行更多的容错设计和纠错设计,并给出必要的错误输出,
    利于判断和调试;

    * 16 一切皆有可能;

    * 17 合理共用函数、合并代码,标准化流程;

    * 18 善用双引号(");

    * 19 善用参数移位(shift);

    * 20 调试(debug)前先删除可能影响调试结果的残留文件,多样例、多调试;

    * 21 多看案例,领悟流程和编程逻辑;多运行;

    * 22 三个码农,互相沟通!

    原文链接:http://forum.ubuntu.org.cn/viewtopic.php?f=21&t=402560

  • 相关阅读:
    网段
    The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path
    不利不理左卫门的吃拿卡要
    webAppRootKey
    011.Python的列表的相关操作
    010.Python字符串的格式化
    009.Python字符串相关函数
    008.Python循环for循环
    007.Python循环语句while循环嵌套
    006.Python循环语句while循环
  • 原文地址:https://www.cnblogs.com/zhaofei/p/3408874.html
Copyright © 2011-2022 走看看