• shell脚本编写习惯


    前言:在公众号看一篇比较不错的shell脚本文章,自己学习同时,加一些例子分享下,哪里做得不好,请多多指教哈

    一.在脚本写注释

    1 #脚本的参数
    2 #脚本的用途
    3 #脚本的注意事项
    4 #脚本的写作时间,作者,版权等
    5 #各个函数前的说明注释
    6 #一些较复杂的单行命令注释
    

    二、脚本中有命令运行失败时退出脚本

    set -o errexit 或 set -e
    

    例子:touch命令替换为touchs

    #!/bin/bash
    set -e
    number=1
    
    echo $number
    touchs 1.txt
    set +e

    执行脚本

    sh test.sh
    test.sh: line 6: touchs: command not found
    

    三、脚本中使用到未声明变量时退出脚本

    set -o nounset 或 set-u  

    例子:number是未声明变量

    #!/bin/bash
    set -u
    numbers=1
    
    echo $number
    echo '哈哈'
    set +u
    

    执行脚本

    sh test.sh 
    test.sh: line 5: number: unbound variable
    

    四、使用双引号引用变量 

    例子:一个普通循环

    例子
    #!/bin/bash
    set -u
    for i in `seq 10`;do
        echo "$i"
    done  
    

    五、在脚本中多使用函数

    #!/bin/bash
    set -ue                                                                                                                                                             
    get_load()
    {
        uptime
    }
    
    get_time()
    {
        date
    }
    
    get_load
    get_time
    

    六、用$(command) 代替传统的`command` 

    例子:

    #!/bin/bash
    set -ue
    current=$(date)
    echo "$current"
    

    七、用readonly声明静态变量

    静态变量不会改变;它的值一旦在脚本中定义后就不能被修改,对于这类变量,在声明的时候应该用readonly去声明。
    例子:

    #!/bin/bash
    set -ue
    readonly app_dir="/data/apps"
    echo "$app_dir"
    app_dir="/data/app"
    echo "$app_dir"  

    执行脚本

    sh test.sh 
    test.sh: line 5: app_dir: readonly variable
    

    八、命名规范
    系统环境变量命名为大写,自己定义的变量用小写

      

     

  • 相关阅读:
    抽丝剥茧设计模式- 责任链模式应用场景
    抽丝剥茧设计模式-工厂和抽象工厂模式
    抽丝剥茧设计模式-你真的懂单例模式吗?
    抽丝剥茧设计模式- 啰嗦几句
    生产环境ng配置
    Linux命令
    内容过滤报错
    user 报错
    cxlabel 显示不全的解决方法
    关于SQL事务的一些坑
  • 原文地址:https://www.cnblogs.com/lucktomato/p/12419134.html
Copyright © 2020-2023  润新知