我想检查,如果设置了多个变量,如果设置则只执行脚本代码,否则退出。
就像是:
if [ ! $DB=="" && $HOST=="" && $DATE=="" ]; then
echo "you did not set any variable"
exit 1;
else
echo "You are good to go"
fi
发布于 2019-06-10 10:18:56
您可以-z
用来测试变量是否未设置或为空:
if [[ -z $DB || -z $HOST || -z $DATE ]]; then
echo 'one or more variables are undefined'
exit 1
fi
echo "You are good to go"
正如您使用了bash标记,我使用了扩展测试[[
,这意味着我不需要在变量周围使用引号。我假设您需要定义所有三个变量才能继续。将exit
在if
分支指的else
是多余的。
在符合POSIX标准的shell中执行此操作的标准方法如下:
if [ -z "$DB" ] || [ -z "$HOST" ] || [ -z "$DATE" ]; then
echo 'one or more variables are undefined'
exit 1
fi
这里的重要区别是每个变量检查都在单独的测试中进行,并且在每个参数扩展周围使用双引号。
https://stackoverflow.com/questions/-100006954
复制相似问题