![Bash의 정규식 일치 연산자를 무효화하는 방법](https://linux55.com/image/141018/Bash%EC%9D%98%20%EC%A0%95%EA%B7%9C%EC%8B%9D%20%EC%9D%BC%EC%B9%98%20%EC%97%B0%EC%82%B0%EC%9E%90%EB%A5%BC%20%EB%AC%B4%ED%9A%A8%ED%99%94%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95.png)
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 ! [[ …