在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
。