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



在Bash中,我应该如何编写布尔条件:

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

或者,在伪代码中:

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

您可以在BASH:中使用它

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

根据人工测试:

-n STRING
       the length of STRING is nonzero

使用参数扩展:

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

如果允许空值,并且只允许未设置变量,那么只需从上面代码段中的每个变量扩展中删除:即可。

但也要注意,exit -1不会从脚本中获得-1返回代码。它会给你255

相关内容

  • 没有找到相关文章

最新更新