加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

带参数的可怕的预定义Bash变量

发布时间:2020-12-16 01:45:23 所属栏目:安全 来源:网络整理
导读:当我想要在 Bash中使用参数的变量中的可变默认值时,有人能指出我的问题是什么?以下代码不起作用: #!/bin/bashVARIABLE1="defaultvalue1"VARIABLE2="defaultvalue2"# Check for first argument,if found,overrides VARIABLE1if [ -n $1 ]; then VARIABLE1=$
当我想要在 Bash中使用参数的变量中的可变默认值时,有人能指出我的问题是什么?以下代码不起作用:

#!/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,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

提前致谢 :)

解决方法

你错过了第一个if的fi.但实际上你很幸运:有一种更简单的方法来做你正在做的事情.

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

来自man bash:

${parameter:-word}
Use Default Values. If parameter is unset or null,the expansion of word is substituted.
Otherwise,the value of parameter is substituted.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读