bash + 정규식 + 시스템 이름 확인 [닫기]

bash + 정규식 + 시스템 이름 확인 [닫기]

다음 호스트 이름을 bash 정규식과 일치시키는 방법은 무엇입니까?

내 Linux 호스트 이름은 star01, star02, star03, start04입니다.

내 목표는 두 번째 숫자로 문자열 "start0"을 확인하는 것입니다.

나는 다음을 수행합니다.

 [[ $hostname =~ star0[:digit:]  ]] && echo ok

하지만 이것은 작동하지 않습니다.

hostname=star04
[[ $hostname =~ star0[:digit:]  ]] && echo ok

여기서 무슨 문제가 있습니까?

답변1

Posix 문자 클래스는 다음과 같이 지정되어야 합니다 [[:digit:]].

[[ $hostname =~ star0[[:digit:]] ]] && echo ok

단순화하는 또 다른 방법은 다음과 같습니다.

[[ $hostname =~ star0[0-9] ]] && echo ok

[:digit:]POSIX대괄호 표현식 내에 사용되는 문자 클래스(예 [x-z[:digit:]]: )POSIX문자 클래스 이름은 모두 소문자여야 합니다.

관련 정보