测试环境变量列表是否都设置为某些值

时间:2014-10-31 07:31:32

标签: bash

在Bash中,我应该如何编写表示:

的布尔条件

给定环境变量$ A,$ B和$ C的列表,仅当所有环境变量都设置为某些值时才执行echo Succeeds!。否则,执行exit -1

或者,在伪代码中:

if (all_env_vars_set_to_some_value($A, $B, $C)) {
    echo 'Succeeds!';
else {
    exit -1;
}

2 个答案:

答案 0 :(得分:0)

你可以在BASH中使用它:

if [[ -n "$A" && -n "$B" && -n "$C" ]]; then
    echo 'Succeeds!'
else
    exit -1
fi

根据`man test:

-n STRING
       the length of STRING is nonzero

答案 1 :(得分:0)

使用parameter expansion

if [ 'X' = "${A:+${B:+${C:+X}}}" ]; then
    echo 'Success!'
else
    exit -1
fi

如果允许空值并且仅允许未设置变量,则只需从上述代码段中的每个变量扩展中删除:

但请注意,exit -1并未从脚本中获取-1返回码。它会让你255