저는 유닉스를 처음 접했고 bash 언어를 배우려고 노력 중입니다. "Test Expressions"에 들어갔을 때 다음을 발견했습니다.
[[ "whatever" =~ h[aeiou] ]]
답변을 읽었습니다.이 문제, 그래서 =~ 연산자가 무엇을 하는지 이해합니다. 이전 명령을 실행한 후에는 조건이 충족되었음을 나타내는 출력이 표시 echo $?
됩니다 . 내가 들어가면0
[[ ]]
[[ "whatever" =~ h[sdfghjkl] ]]
의 출력은 echo $?
이므로 1
조건이 충족되지 않습니다.
그래서 나는 h[aeiou]
무엇이 무엇인지 알고 싶습니다 h[sdfghjkl]
. 표현식에 h
미리 정의된 함수 가 있나요 [[ ]]
? 그렇다면 무엇을 하고 있나요? 그렇지 않다면 h[aeiou]
실제로 h{sdfghjkl]
는 무엇입니까?
감사해요.
답변1
다른 문서인 패턴 일치에서 언급했듯이 =~
오른쪽 피연산자는 정규식(regex)입니다.
괄호는 h[aeiou]
정규식 구문의 일부이며 거기에는 명명된 함수가 없습니다. h[aeiou]
는 와 일치하고 h
는 다음 중 하나와 일치하므로 aeiou
와 뒤에 가 whatever
있으므로 일치합니다 .h
a
정규식에 대해 들을 수 있으므로 자세히 살펴보는 것이 좋습니다.
- https://en.wikipedia.org/wiki/Regular_expression
- https://regexone.com/
- 내 정규 표현식이 X에서는 작동하지만 Y에서는 작동하지 않는 이유는 무엇입니까?
(위키피디아 페이지에도 공식적인 내용이 포함되어 있는 것 같으니 너무 얽매이지 마세요.)