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

相关推荐

  • 第五周作业

    1、显示/boot/grub/grub.conf中以至少一个空白字符开头的行; ~]# grep  “^[[:space:]]\{1,\}” /boot/grup/grup.conf                     &…

    2017-03-01
  • I/O重定向及管道

    一、I/O重定向     程序=指定+数据     读取数据:input     输出数据:output     打开的文件都有一个fd:文件描述符     l…

    Linux干货 2016-08-02
  • 上古神器之vim

    sed 前言:前面学到了文本处理三剑客之一grep,但是grep在有些时候显得力不从心,我们需要一款针对行操作的处理工具,没错,这就是sed流编辑器。 sed用法提炼: sed 's/(text1)(text2)(text3)/\1\2\3/'  vim 前言:强大的Linux如果没有一款疯狂的编辑器,常用的编辑操作会…

    Linux干货 2016-08-12
  • linux存储系统流程简介

    存储系统是linux系统非常重要,也是非常基础的知识点。整个存储系统涉及到知识点也非常的多。 本文主要通过磁盘简介->分区管理->文件系统管理->文件存储结构->软连接和硬链接->挂载原理->常见存储相关操作命令,这一条主线来让大家对linux的整个存储系统有个初步,清晰的了解. 1.磁盘简介   &n…

    Linux干货 2015-12-15
  • 网络路由以及配置

               路由表的构成    目标网络的网络ID   Netmask 接口:到达目标网络的路由器出口  网关gateway: 1.如果目标网络和路由器直连,网关IP=接口的IP  2.如果目标网络和路由器非直连,下一个路由器临近…

    Linux干货 2017-07-02
  • N24 第三周 磁盘及文件系统管理

    Linux系统管理          磁盘分区及文件系统管理          RAID          LVM 动态磁盘设备管理          网络属性…

    Linux干货 2016-11-22

评论列表(2条)

  • renjin
    renjin 2017-04-21 10:18

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

    • PowerMichael
      PowerMichael 2017-04-25 20:40

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