bash - if [ -z "$ENV_VAR" -a -z "$ENV_VAR2"] bash 条件中 -a -z 的含义
问题描述
-a -z
in是什么意思
if [ -z "$ENV_VAR" -a -z "$ENV_VAR2"]; then
...
fi
bash 有条件的?
第一个 -z 检查$ENV_VAR是否根据
-z string 如果字符串的长度为零,则为真。
-a -z
与ENV_VAR2相关的组合测试是什么?
根据文档
-a 文件 如果文件存在则为真。
但是,ENV_VAR2可能只包含文本,而不是文件名。
解决方案
[ -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 ]]
推荐阅读
- javascript - 显示来自 html 前代码标记中另一个模板文字中的模板文字的 html
- python - 二进制字符串操作
- django - 在 get_initial 中访问 Django 上下文数据
- java - 如果一个类继承自多个接口并且这些接口具有相同的方法名称和签名。如何提供不同的实现
- excel - 如何为来自不同位置和特定条件的隐藏行创建循环?
- powershell - 将许多数组元素作为单独的参数传递给 Powershell 中的可执行文件
- c# - 如何将对象打印到控制台?
- javascript - 为什么我的 JavaScript Do-While 循环没有带来我想要的结果?
- android - Jetpack compose 从资源中获取 FontFamily
- spring-boot - openjdk17 的 Xstream 编组问题