이중 괄호 안의 bash 부정 표현

이중 괄호 안의 bash 부정 표현

다음이 숫자 확인과 일치하므로 표현식을 어떻게 부정할 수 있습니까?

  elif [[ $pn =~ ^[[:digit:]]+$ ]]; then
    pfm -w "pn failed numeric inspection"

답변1

부정적인 테스트를 사용할 수 있습니다

[[ ! $pn =~ ^[[:digit:]]+$ ]]

또는 이 경우에는

[ -z "$pn" ] || [[ $pn =~ [^[:digit:]] ]]

즉, " $pn비어 있거나 숫자가 아닌 내용이 포함되어 있습니까?"

또는 와일드카드 테스트를 통해

[ -z "$pn" ] || [[ $pn == *[![:digit:]]* ]]

또는 확장된 와일드카드 패턴을 사용하세요.

[[ $pn != +([[:digit:]]) ]]

관련 정보