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 ! [[ …