我有一些Unix shell脚本,我需要在开始做之前检查某些环境变量是否已设置,所以我做了这样的事情:
if [ -z "$STATE" ]; then
echo "Need to set STATE"
exit 1
fi
if [ -z "$DEST" ]; then
echo "Need to set DEST"
exit 1
fi
Run Code Online (Sandbox Code Playgroud)
这是很多打字.是否有更优雅的习惯用于检查是否设置了一组环境变量?
编辑:我应该提到这些变量没有有意义的默认值 - 如果有任何未设置,脚本应该出错.
$ {parameter:= word}分配默认值.如果参数未设置或为null,则将字的扩展分配给参数.然后替换参数的值.不能以这种方式分配位置参数和特殊参数.
我以为我可以使用这个功能来${LONG_VARIABLE_NAME:=hello}代替更长的时间LONG_VARIABLE_NAME=${LONG_VARIABLE_NAME:-hello},但是现在bash也试图执行'hello'并且给出了一个找不到的命令.有什么办法可以避免吗?或者我必须坚持后者?有人可以给出一个分配默认值实际有用的例子吗?