Bash의 정규식 일치 연산자를 무효화하는 방법

Bash의 정규식 일치 연산자를 무효화하는 방법

Bash에는 =~정규식 일치 연산자가 있습니다.여기다음은 이를 사용하는 예입니다.

#!/bin/bash

input=$1


if [[ "$input" =~ "[0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9][0-9][0-9]" ]]
#                 ^ NOTE: Quoting not necessary, as of version 3.2 of Bash.
# NNN-NN-NNNN (where each N is a digit).
then
  echo "Social Security number."
  # Process SSN.
else
  echo "Not a Social Security number!"
  # Or, ask for corrected input.
fi

부정의 경우, 내가 본 모든 예는 else절에 의존합니다. 내 상황에 맞춰오직부정 일치에 관심이 있습니다. 기능적이지 않은 절을 만드는 더 좋은 방법이 있습니까 if?

예를 들어, 위의 입력에만 관심이 있다면아니요a는 사회보장번호가 아닙니다. 올바른 방법은 무엇입니까?

답변1

최상위 수준에서 부정을 수행할 수 있습니다.

if ! [[ …

관련 정보