kj-crypto Asked: 2025-04-14 19:10:48 +0800 CST2025-04-14 19:10:48 +0800 CST 2025-04-14 19:10:48 +0800 CST 如何检查 bash 中环境是否存在? 772 在 Bash 中,检查环境变量是否设置的标准方法是什么?我对以下选项有点困惑: ! [ -z "${VAR}" ] [ -n "${VAR}" ] [ "${VAR}" ] 或者有更好的方法吗? bash 2 个回答 Voted Best Answer jesse_b 2025-04-14T20:01:03+08:002025-04-14T20:01:03+08:00 -n检查变量是否不为空。 在 bash 4.2 或更高版本中,您可以使用-v运算符来检查变量是否已设置,即使该变量没有值,所以这可能是您想要涵盖的场景。 Bash 使用扩展测试[[,因此“bash”测试将是: [[ -n "$VAR" ]] 然而这个变量可能只是一个局部变量,如果你想检查它是否被导出,你需要类似的东西: if env | grep -q '^VAR='; then Seamus 2025-04-15T15:44:22+08:002025-04-15T15:44:22+08:00 尝试一下: if [[ ! -v VAR ]]; then echo "unset" fi 注意:不要扩展 VAR;使用VAR-而不是 $VAR
-n
检查变量是否不为空。在 bash 4.2 或更高版本中,您可以使用
-v
运算符来检查变量是否已设置,即使该变量没有值,所以这可能是您想要涵盖的场景。Bash 使用扩展测试
[[
,因此“bash”测试将是:[[ -n "$VAR" ]]
然而这个变量可能只是一个局部变量,如果你想检查它是否被导出,你需要类似的东西:
尝试一下:
注意:不要扩展 VAR;使用
VAR
-而不是$VAR