代码之家  ›  专栏  ›  技术社区  ›  Havok

带参数的可重写预定义Bash变量

  •  3
  • Havok  · 技术社区  · 14 年前

    #!/bin/bash
    
    VARIABLE1="defaultvalue1"
    VARIABLE2="defaultvalue2"
    
    # Check for first argument, if found, overrides VARIABLE1
    if [ -n $1 ]; then
        VARIABLE1=$1
    fi
    # Check for second argument, if found, overrides VARIABLE2
    if [ -n $2 ]; then
        VARIABLE2=$2
    fi
    
    echo "Var1: $VARIABLE1 ; Var2: $VARIABLE2"
    

    我希望能够做到:

    #./script.sh
    Var1: defaultvalue1 ; Var2: defaultvalue2
    #./script.sh override1
    Var1: override1 ; Var2: defaultvalue2
    #./script.sh override1 override2
    Var1: override1 ; Var2: override2
    

    1 回复  |  直到 14 年前
        1
  •  7
  •   John Kugelman Michael Hodel    14 年前

    你错过了比赛 fi 第一次 if

    VARIABLE1=${1:-defaultvalue1}
    VARIABLE2=${2:-defaultvalue2}
    

    man bash :

    ${parameter:-word}
    使用默认值。 为unset或null时,扩展 单词 已被替换。 否则 参数 已被替换。

    推荐文章