我正在尝试组合检查字符值或空值的两个条件。出于某种原因,他们只是单独工作,当我尝试将它们组合在一起时,它会给我带来错误。我错过了什么吗?
RETENTION= #either a character value or null value
if [[ "$RETENTION" == +([a-zA-Z]) ]] || [ -z "$RETENTION"] ; then
#bad input
#exit 1
使用elif单独执行也不起作用。只有一个条件有效。
答案 0 :(得分:-1)
你的情况有错字:
if [[ "$RETENTION" == +([a-zA-Z]) ]] || [ -z "$RETENTION" ] ; then
应该是:
if [[ "$RETENTION" == +([a-zA-Z]) ]] || [ -z "$RETENTION" ] ; then
你的OR conditio
之前你已经关闭了双方括号UPDATE 实际解决方案是交换条件的顺序:
if [ -z "$RETENTION" ] || [[ "$RETENTION" == +([a-zA-Z]) ]] ; then