我怎样才能否定表达式,因为以下匹配数字检查。
elif [[ $pn =~ ^[[:digit:]]+$ ]]; then
pfm -w "pn failed numeric inspection"
答案1
您可以使用否定测试
[[ ! $pn =~ ^[[:digit:]]+$ ]]
或者,在这种情况下,
[ -z "$pn" ] || [[ $pn =~ [^[:digit:]] ]]
即“为$pn
空还是包含非数字?”
或者,通过通配符测试,
[ -z "$pn" ] || [[ $pn == *[![:digit:]]* ]]
或者,使用扩展的通配模式,
[[ $pn != +([[:digit:]]) ]]