【发布时间】:2017-12-03 08:21:49
【问题描述】:
我有一个函数,我试图将第一个参数与一个字符串进行比较,然后是一个单独的布尔变量。
我的布尔示例:
EMS=true;
COLL=true;
在给定的点上,两者或其中任何一个都可能是真的。
我的函数体:
function some_function() {
...
...
if [ [ "$1" = "ez" ] && $EMS ] || [ "$1" = "coll" ] && $COLL ]; then
#do mysterious magic
...
...
fi
}
我这样调用函数:
some_function ez
some_function coll
但是当我执行脚本时,我遇到了这个:
./deployBuild.sh: line 145: [: too many arguments
我的 if 循环不正确,我无法修复它。我该如何进行?
我想要实现的伪代码:
if ("$1" is "ez" AND $EMS evaluates to true) OR ("$1" is "coll" AND $COL evaluates to true)
【问题讨论】:
-
另外,你不能包装
[——我添加了另一个副本,它(间接)解释了这一点。
标签: bash shell ubuntu if-statement sh