이것매뉴얼 페이지bash
운영자님이 이런 말씀을 하십니다 =~
.
== 및 !=와 우선순위가 동일한 추가 이항 연산자 =~를 사용할 수도 있습니다. 사용되면 연산자 오른쪽에 있는 문자열은 확장 정규식으로 처리되어 그에 따라 일치됩니다(예:정규식(3))
그러나 사소한 RE조차도 작동하지 않는 것 같습니다. 내 사용 사례는 다음과 같습니다.
n='hello'
[[ "$n" =~ 'llo' ]] && echo yes || echo no # <-- yes
[[ "$n" =~ 'llo$' ]] && echo yes || echo no # <-- no
이것이 $
EOL에 대한 표준 RE 측정항목인데 두 번째 비교에서 "아니요"를 반환하는 이유는 무엇입니까?
답변1
매뉴얼 페이지를주의 깊게 읽지 않았으며 다음과 같이 적혀 있습니다.
패턴의 모든 부분을 인용하여 인용된 부분을 문자열로 일치시킬 수 있습니다.
따라서 $
문자열에서 는 문자열의 끝이 아닌 문자 그대로의 달러 기호를 의미합니다. 문자열에서 이동하여 $
작동하게 합니다.
$ [[ "$n" =~ 'llo'$ ]] && echo yes || echo no
yes