首页 > 解决方案 > if [ -z "$ENV_VAR" -a -z "$ENV_VAR2"] bash 条件中 -a -z 的含义

问题描述

-a -zin是什么意思

if [ -z "$ENV_VAR" -a -z "$ENV_VAR2"]; then
...
fi

bash 有条件的?

第一个 -z 检查$ENV_VAR是否根据

-z string 如果字符串的长度为零,则为真。

-a -zENV_VAR2相关的组合测试是什么?

根据文档

-a 文件 如果文件存在则为真。

但是,ENV_VAR2可能只包含文本,而不是文件名。

标签: bashconditional

解决方案


[ -z "$ENV_VAR" -a -z "$ENV_VAR2" ]使用switch将 2 个条件与在一起:-a

它的意思是这样的:

  • -z "$ENV_VAR":$ENV_VAR是空的
  • -a: 和
  • -z "$ENV_VAR2":$ENV_VAR2是空的

顺便说一句,如果您正在使用bash,您可以重构此条件以使其更简洁:

[[ -z $ENV_VAR && -z $ENV_VAR2 ]]

推荐阅读