在bash脚本中,$ {VAR:-...}和$ {VAR:?...}之间有什么区别?

时间:2017-03-06 16:34:00

标签: bash

我正在关注变量转换的this教程。

如果我有以下内容:

 for (var i = 0; i < array.length; i++) {
            if (input.indexOf(array[i])> -1) {
                console.log("Object with index number "+i+" contains "+input); 
            }
            return;
    }

echo ${TEST:-test} #TEST is undefined, 'test' is printed and TEST is still undefined. echo ${FOO:?"some text"} #"some text" is printed and FOO is still undefined. ':-'之间有什么区别?

1 个答案:

答案 0 :(得分:1)

这些是测试快捷方式:

 echo ${TEST:-test}

如果$TEST存在,那么将使用其值,否则将使用$test的值。如果您想要设置TEST,那么您可能需要:

echo ${TEST:=test}

下一个:

echo ${FOO:?"some text"}

如果设置了$FOO,则使用其值,否则输出到stderr错误消息&#34;某些文本&#34; (默认为&#34;参数为null或未设置&#34;)。