我在 KornShell (ksh) 上得到以下代码段失败:
var1="1"
var2="2"
if [ ( "$var1" != "" -o "$var2" != "") -a ( "$var1" = "$var2" -o " "$var1" = "x") ]; then
echo "True"
else
echo "False"
fi
ksh: 语法错误: `"$var1"' 意外
据我了解,这失败了,因为括号在无法识别 var1 的子shell中运行。那么如何在方括号内分组条件集呢?
注意我已经知道以下解决方案并且不想使用它们:
- 将条件放在单独的嵌套 if 语句中。
- 优化/重新排列条件,以便仅将它们放在一组中。