정규식과 경로를 어떻게 일치시키나요? (인용하는 방법이 맞나요?)

정규식과 경로를 어떻게 일치시키나요? (인용하는 방법이 맞나요?)

./foo/baz/bar/filename.c컨텍스트 에서 형식의 경로와 일치하는 정규식을 찾으려고 합니다 [[ $string =~ $regex ]].

일치할 것으로 예상 regex=$'(^\./).*$'하지만 ${BASH_REMATCH[1]}비어 있습니다. 나는 괄호를 피하려고 노력했거나 .*아무 소용이 없었습니다.

BASH_REMATCH중첩된 캡처링 그룹에 대한 액세스가 다른 콘텐츠(오른쪽에 중첩 수준 및 캡처링 그룹에 대한 추가 인덱스 하나) 를 통해 작동하는 방식에 대해 알아냈지만 $string이 방법은 일치하지 않습니다.

나의 실패는 무엇입니까?

답변1

달러 기호가 앞에 붙지 않거나 작은 따옴표로 묶인 $string변수 에서도 작동합니다 .[[ $string =~ $pattern ]]$'...''...'

관련 정보