相关疑难解决方法(0)

检查环境变量是否在Unix shell脚本中设置的简洁方法是什么?

我有一些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)

这是很多打字.是否有更优雅的习惯用于检查是否设置了一组环境变量?

编辑:我应该提到这些变量没有有意义的默认值 - 如果有任何未设置,脚本应该出错.

unix bash shell

484
推荐指数
9
解决办法
37万
查看次数

bash指定默认值

$ {parameter:= word}分配默认值.如果参数未设置或为null,则将字的扩展分配给参数.然后替换参数的值.不能以这种方式分配位置参数和特殊参数.

我以为我可以使用这个功能来${LONG_VARIABLE_NAME:=hello}代替更长的时间LONG_VARIABLE_NAME=${LONG_VARIABLE_NAME:-hello},但是现在bash也试图执行'hello'并且给出了一个找不到的命令.有什么办法可以避免吗?或者我必须坚持后者?有人可以给出一个分配默认值实际有用的例子吗?

bash

120
推荐指数
3
解决办法
7万
查看次数

标签 统计

bash ×2

shell ×1

unix ×1