首页 > 解决方案 > 检查多个 Bash 变量是否为空/未设置并运行这个或那个

问题描述

我正在尝试根据多个变量是否设置/不为空来填充/生成文件。但在这两种情况下,它总是表现得像它们都被设置:

if [[ -z $VAR1=="" || -z $VAR2=="" ]]; then
  echo "VARs not set"

cat <<EOF > file
1
2
3
EOF

else
  echo "VARs are set"

cat <<EOF > file
1
2
3
4
5
EOF

fi

我在这里做错了什么?

标签: bashvariables

解决方案


仅使用 -z $VAR

if [[ -z $VAR1 || -z $VAR2 ]]; then
  echo "VARs NOT set -- "
cat <<EOF > file
1
2
3
EOF
else
  echo "VARs are set"
cat <<EOF > file
1
2
3
4
5
EOF
fi

推荐阅读