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

相关推荐

  • 一切皆文件——Linux基本命令(1)

    1.一切皆文件 在dev下有很多硬件的文件 sr0是光驱 console是终端,也划为一个文件   2.查看终端   3.两个终端发信 首先右键选择Clone Session,新客隆了一个centos6 分别使用tty命令查看终端名。 分别为0和1 通过命令:echo “想发送的信息“ > 终端名 即可发送 在0中输入命令: 在1中…

    Linux干货 2017-07-13
  • N27—第十周作业

    N27_第十周作业 1、请详细描述Centos系统的启动流程(详细到每个过程系统做了哪些事情) 详情请参考http://www.178linux.com/85713 2、为运行于虚拟机上的Centos 6添加一块新的硬盘,提供两个主分区; (1)为硬盘新建两个主分区;并为其安装grub (2)为硬盘的第一个主分区提供内核和ramdisk文件;为第二个分区提供…

    Linux干货 2017-10-21
  • 马哥教育网络班21期+第14周课程练习

    系统的INPUT和OUTPUT默认策略为DROP; 1、限制本地主机的web服务器在周一不允许访问;新请求的速率不能超过100个每秒;web服务器包含了admin字符串的页面不允许访问;web服务器仅允许响应报文离开本机; INPUT链 # iptables -I INPUT 1 -p tcp&nb…

    Linux干货 2016-11-14
  • week2

    一、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。 常用工具cp mv rm cat tac head tail more less stat cp   cp SRC…DEST A. 如果SRC是文件: a. 如果目标不存在:新建DEST,并将SRC中的内容填充至DEST中。 b. 如果目标存在: (1). 如…

    Linux干货 2016-11-06
  • 文本处理工具(练习+作业)

    文本处理工具(cut,sort,uniq)练习 1、找出ifconfig命令结果中本机的所有IPv4地址 [root@localhost ~]# ifconfig | tr -cs '[:digit:].' '\n'| sort -t. -k3 |tail -5 2、查出分区空间使用率的最大百分比值 [root@loc…

    Linux干货 2016-08-07
  • CentOS7中nmcli网络管理及使用详解

    一、网络接口配置工具    在CentOS7系统中,强烈推荐使用nmcli管理网卡。下面记录的是nmcli的使用详解。    网络接口配置工具NetworkManager(简称为nmcli),该命令的作用是:可以查询网络连接的状态,也可以用来管理网络(设置系统每个网卡的特性)。该命令如何使用呢,其实可以用"n…

    Linux干货 2016-09-11

评论列表(2条)

  • renjin
    renjin 2017-04-21 10:18

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

    • PowerMichael
      PowerMichael 2017-04-25 20:40

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