shell脚本编程的一些好习惯

shell脚本编程的一些好习惯


1.命名规则

  脚本命名以.sh结尾,名称尽量见名之意。以下是几种可供参考的脚本命名风格。通过以下清新脱俗的风格,读者能够很easy的明白脚本的作用。

        clearlog.sh 
        ClearLog.sh 
        clearSql.sh
        snmp_install.sh
        Monitor.sh

2.脚本信息

  为脚本加入生动的信息,比如脚本功能的描述,作者,时间,版本信息等。

    #!/bin/bash  #调用语言
    #
    # Filename: log_receiver.sh
    # Description: LOG number write DB 
    # Author:Karwai Wong 
    # Email: xxxx@jiecao.com
    # Revision: 1.1
    # Date: 2046-04-06

3.代码格式

  代码格式统一简洁,避免过于花哨。缩进格式要统一,一般使用四个空格作为一个缩进。为脚本中内容加入适当的注释也是一个良好的习惯。以下代码是我创建的一个小脚本,文件名为newscript.sh,其功能是为新创建的文件添加注释信息。这些信息为脚本的相关信息。只要执行这个脚本,就可以快速地为新脚本文件添加注释信息。 
其执行方式可这样:bash newscript.sh 新脚本文件名

    #!/bin/bash                                                  
    # Filename:shell scripts standard
    # Description:make shell scripts standard fastly   
    # Author:Karwai Wong 
    # Email: xxxx@jiecao.com
    # Revision: 1.1
    # Date: 2046-04-06
     
    # function:make shell scripts standard for newfile
    new_file_name=$1
    if ! grep -q "#!" ${new_file_name};then
        cat>>${new_file_name}<<EOF
        #!/bin/bash
        #
        # Filename: 
        # Description: 
        # Author:
        # Email:
        # Revision: 
        # Date:
        EOF
    fi
    # open text form  the 9 lines
    vim +9 ${new_file_name}

4.编写脚本的一些注意事项

  养成良好的编程习惯,注重细节,追求极致,这是成为一个优秀的程序员的基本条件。以下是在下shell脚本编程生涯的一些经验之谈,是关于shell脚本一些tip,如有不妥之处,还请指出。

   

    1.调试功能。我把调试分为内部调试和外调试。
        内部调试:在脚本内部通过echo $?命令,判断脚本的执行状态。
        外部调试:
            bash -n script 判断脚本语法是否正确
            bash -x script 调试模式,输出每一步的执行信息
    2.脚本执行
        1.建议在脚本执行的开始重读下/etc/profile文件, 或者是自己定义的关于环境变量的配置文件,推荐使用source,如:
             source /etc/profile
             source /opt/sh/appenv.sh
        2.在某些特殊的环境下,shell脚本里引用的命令,有可能是自己定义的bin路径,在执行的时候会报出command not found,解决的方式是在执行命令时补全路径。
            export PATH="/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/apps/bin/ 
    3.条件测试
        条件测试的时候,尽量使用[[]],而不用[]或者test,因为[[]]功能会更强大。
    4.与或非
        可以使用&& || !来替代简单的if-then-else-fi语句。这样会使代码看上去更加的简洁。
    5.函数功能
        尽可能的使用函数的功能,将不同的功能定义为函数,下次使用时,直接引用函数。
    6.日志备份
        关键的操作须有日志输出,专门记录操作的成功或者失败以及执行的时间点
    

原创文章,作者:PowerMichael,如若转载,请注明出处:http://www.178linux.com/73321

(2)
PowerMichaelPowerMichael
上一篇 2017-04-14 21:53
下一篇 2017-04-15 10:45

相关推荐

  • 马哥教育网络班20期+第二周课程练习

    linux 中一切皆文件,我们所做的一切都是和文件打交道。   文件分为两部分:元数据和数据           元数据: 即真实数据的属性。可用 stat  命令查看       &nbs…

    Linux干货 2016-06-23
  • 文本处理工具以及grep

    文本处理工具以及grep 我们在使用Linux系统的时候需要查看、分析或者统计文件,这时候我们就需要使用到文本处理工具。 我们先来看下几个文本处理工具的使用: 文件内容:less和 cat 文件截取:head和tail 按列抽取:cut 按关键字抽取:grep 我们先来看看less和cat cat:查看文件命令     用法: &nbsp…

    Linux干货 2016-08-08
  • linux 路由配置及其网络组配置实例

    linux 路由配置及其网络组配置实例   §·路由配置 网络简单拓扑图如下:   ※·实例要求:主机A可以ping同主机B即可。 ※·实验步骤及其要点: 1.主机A设置IP地址与默认网关; 2.配置路由器1两接口的IP地址,并开启主机的路由功能,添加172.14.16.0路由条目; 3.配置路由器1两接口的IP地址,并开启主机的路由功能…

    Linux干货 2016-09-06
  • 开班第一天

    我的一篇小日记

    Linux干货 2018-03-26
  • 重定向以及管道

    描述I/O设备的重定向

    Linux干货 2017-11-19
  • LVS:三种模式的原理、调度算法、及应用介绍

    LVS三种模式原理(nat/dr/tun) LVS/NAT:   如上图,客户通过virtual IP (虚拟服务的IP地址,公网地址),访问网络服务时,请求报文到达调度器,调度器根据连接调度算法从一组真实服务器中选出一台服务器,将报文的目标地址VIP,改写成选定服务器的地址(RIP),报文的目标端口改写成选定服务器的相应端口,最后将修改…

    Linux干货 2016-10-30

评论列表(2条)

  • renjin
    renjin 2017-04-21 10:18

    主要介绍了shell脚本的一些的好习惯,包括命令规则、脚本信息、代码格式、注意事项等等,内容写的很不错,排版也很好,加油、加油!

    • PowerMichael
      PowerMichael 2017-04-25 20:40

      @renjin好的,好好学习,天天向上。