zoukankan      html  css  js  c++  java
  • shell脚本中set指令

    set -x介绍

    用于脚本调试,在liunx脚本中可用set -x就可有详细的日志输出.免的总是用echo了

    参考
    
    #!/bin/bash
    set -x
    a=${1}
    b=$

     结果

    bash This is a premium name 1 2
    + a=1
    + b=1

    set -e介绍

    每个脚本都应该在文件开头加上set -e,这句语句告诉bash如果任何语句的执行结果不是true则应该退出。这样的好处是防止错误像滚雪球般变大导致一个致命的错误,而这些错误本应该在之前就被处理掉。如果要增加可读性,可以使用set -o errexit,它的作用与set -e相同。

    参考

    #!/bin/bash set-e lp #这里运行会出错 date 这种情况下,运行一旦出错就会退出,不放过一个问题: $ ./test.sh lp: Error - nodefaultdestination available. 当然了,这也有不好的地方,有时候命令执行本来就可能是失败的,你还是希望它继续,可以临时加上|| true: #!/bin/bash set-e lp || true date 不过个人觉得这样的设置用处不是特别大,因为很多时候就是需要处理不同的错误情况,而这样只能要么遇到错误退出,要么认为正确,导致无法走到异常分支。

    使用-e帮助你检查错误。如果你忘记检查,bash会帮你执行。不幸的是,你将无法检查$?,因为如果执行的语句不是返回0,bash将无法执行到检查的代码。你可以使用其他的结构:

    if [ "$?"-ne 0]; then   
        echo "command failed";   
        exit 1;   
    fi   
    could be replaced with
    
    能够被代替为
    
    command || { echo "command failed"; exit 1; }
    
    或者
    
    if ! command; then  
         echo "command failed";   
        exit 1;   
    fi  
  • 相关阅读:
    Jquery尺寸
    Jquery 位置
    c#编码规范
    手机即时通信文章列表
    缺陷跟踪系统BugTracker。 以下对使用
    用正则表达式来匹配图片标签
    mvc 分页
    Asp.Net MVC4网站中自定义AuthorizeAttribute
    asp.net mvc4 身份验证问题无法绕过内置的Membership/Role机制
    HDU4712Hamming Distance随机化算法
  • 原文地址:https://www.cnblogs.com/52py/p/15000843.html
Copyright © 2011-2022 走看看