我正在尝试在if条件中的bash脚本中结合逻辑AND和OR。不知何故,我没有得到预期的输出,而且很难进行故障排除。 我正在尝试验证传递给shell脚本的输入参数是否为空参数,并且第一个传递的参数是否有效。
if [ "$#" -ne 1 ] && ([ "$1" == "ABC" ] || [ "$1" == "DEF" ] || [ "$1" == "GHI" ] || [ "$1" == "JKL" ])
then
echo "Usage: ./myscript.sh [ABC | DEF | GHI | JKL]"
exit 1
fi
有人能指出这里出了什么问题吗?
[[ ... ]]
表达式。 - anubhava$1 != ...
,但我只是复制了 OP 的条件。 - anubhavashopt -s extglob
显式启用它。 - chepner