我正在尝试组合两个检查字符值或空值的条件。 由于某种原因,它们只能单独工作,当我尝试将它们组合成"或"时,它会给我错误。 我错过了什么吗?
RETENTION= #either a character value or null value
if [[ "$RETENTION" == +([a-zA-Z]) ]] || [ -z "$RETENTION"] ; then
#bad input
#exit 1
使用 ELIF 单独执行此操作也不起作用。 只有一个条件有效。
您的病情有拼写错误:
if [[ "$RETENTION" == +([a-zA-Z]) ]] || [ -z "$RETENTION" ] ; then
应该是:
if [[ "$RETENTION" == +([a-zA-Z]) ]] || [ -z "$RETENTION" ] ; then
您在手术室条件之前关闭了双方括号
更新实际解决是交换条件的顺序:
if [ -z "$RETENTION" ] || [[ "$RETENTION" == +([a-zA-Z]) ]] ; then