美文网首页
Linux编写SHELL实用提示

Linux编写SHELL实用提示

作者: 向杨垫下 | 来源:发表于2017-10-20 10:48 被阅读0次

    SHELL实用技巧

    当脚本失败时退出

    有时某个命令失败,还会继续执行下去,可能最终导致逻辑错误。当执行出错,实用下面语句退出脚本:

    # let script exit if command fails
    set -o errexit
    OR
    set -e
    

    实用未声明变量时,退出脚本

    实用未声明变量,会导致逻辑错误。当使用未声明变量,使用下面语句退出当前脚本。

    # let script exit if an unsed variable is used
    set -o nounset
    OR
    set -u
    

    使用双引号引用变量

    引用变量时使用双引号,有助于防止分词(空格)和不必要的全局(识别和扩展通配符):

    #!/bin/bash
    #let script exit if a command fails
    set -o errexit 
    #let script exit if an unsed variable is used
    set -o nounset
    names="Howtoing FOSSMint Linusay"
    echo "Names with double quotes" 
    echo
    for name in "$names"; do
    echo "$name"
    done
    exit 0
    

    使用脚本中的功能

    始终记住,使用函数来模块化代码,并使脚本更易读和可重用:

    function myfunc() {
        command1;
        command2;
    }
    

    使用=进行字符串比较

    val1="apple"
    val2="banana"
    if [ "$val1" = "$val2" ]
    

    命令输出内容替换使用$(command)

    命令替换,用其执行结果替换该命令,使用$(command)而不是反引号来进行命令替换

    # Wrong
    user=`echo "$UID"`
    
    # Right
    user=$(echo "$UID")
    

    使用只读来声明静态变量

    静态变量的值在脚本中不能被改变

    readonly passwd_file="/etc/passwd"
    readonly group_file="/etc/group"
    

    使用大写名称为环境变量,小写为自定义变量

    所有bash环境变量都以大写字母命名,因此使用小写字母命名自定义变量可以避免冲突

    跟踪SHELL脚本中命令的执行

    启用SHELL脚本的调试模式

    启用脚本调试模式的调试选项:

    1. -v 显示脚本中所有行,会激活详细模式
    2. -n (简称NOEXECexecution),读取所有命令,但不执行它们。此选项激活语法检查模式
    3. -x (简称X跟踪或执行跟踪),告诉SHELL,显示正在执行的所有命令及参数。此选项启用SHELL跟踪模式。

    使用SHELL的set内置命令启用调试:
    使用set built-in命令调试shell脚本的给定部分,例如函数。这种机制很重要,因为它允许我们在shell脚本的任何段上激活调试。 我们可以打开下面的表单,其中选项是任何调试选项使用set命令调试模式:

    options表示上面的调试选项之一或组合
    启用调试模式:

    set -option
    

    禁用调试模式:

    set +option
    

    如果在SHELL脚本中的不同段启用了几种调试模式,也可以用下述方式一次禁用所有调试模式:

    set -
    

    SHELL启用调试模式

    启用详细调试模式
    -v 调试选项,告诉SHELL显示所有行,阅读它们。

    命令行用法:

    bash -v script.sh
    

    启用语法检查调试模式
    -n 激活语法检查调试模式,指示SHELL读取所有命令,但不执行它们,仅检查使用的语法,如果检查出错误,在终端打印,否则不显示任何内容。

    命令行用法:

    bash -n script.sh
    

    启用跟踪执行调试模式
    -x 跟踪Shell脚本中命令的执行。这指示SHELL在终端上执行显示所有命令和参数。

    命令行用法:

    bash -x script.sh
    

    相关文章

      网友评论

          本文标题:Linux编写SHELL实用提示

          本文链接:https://www.haomeiwen.com/subject/nrwmuxtx.html