bash - 如果条件不考虑第二个条件,为什么我的 bash?
问题描述
我有以下代码片段。
if [ "$2" == "azure" ] && [ -n $11 ]; then
CRED_KIND=$2
CRED_NAME=$3
CRED_UNAME=$4
CRED_PWD=$5
TWR_UNAME=$6
TWR_PWD=$7
CLNT=$8
SEC=$9
SUBS=$10
TEN=$11
credsplaybook $CRED_KIND $CRED_NAME $CRED_UNAME $CRED_PWD $TWR_UNAME $TWR_PWD $CLNT $SEC $SUBS $TEN
exit 1
fi
出于某种原因,即使我只传递了 7 个参数,它也会继续执行 if 条件,只考虑第一次检查并跳过第二次检查。根据条件,它应该检查第二个参数是否为“azure”以及是否总共传递了 11 个参数。
./createResourcesPlaybook.sh cred azure test123 myuser mypass tower towerpass
[INFO] Creating Playbook for Credential with type azure
.
.
.
rest of output
解决方案
推荐阅读
- google-sheets - 转置/旋转、匹配和索引?不知道如何处理这种情况
- javascript - NPM 错误:EINTEGRITY:完整性校验和使用 sha 512 失败
- javascript - 使用 Discord.js 检查消息长度
- postgresql - Postgres - 最好将字节数组存储为 Postgres 中的 BYTEA 或 base64 编码值并将它们存储为 TEXT
- mysql - 为什么此 DATE 运算符不适用于我的查询?
- css - 基于环境的 Sass 动态导入
- javascript - 简单的 React-Redux 应用程序上的“错误:重新渲染过多”
- c++ - 升压累加器是否支持计算相邻值之间的最小差异?
- arrays - 为什么我的代码适用于数组的某些行而不适用于其他行?
- pandas - 基于多重分配的seaborn多重箱线图