이중 괄호를 사용하지 않고 정규식 일치를 테스트할 수 있나요?

이중 괄호를 사용하지 않고 정규식 일치를 테스트할 수 있나요?

내가 이해하는 한(자유롭게 정정해 주십시오. 저는 쉘 스크립팅이 처음입니다.) 대괄호는 [Unix 명령이자 test조건을 테스트할 수 있는 명령의 대안입니다( 0조건이 true이면 true반환 하고 1그렇지 않으면 반환).

이중 괄호는 [[더 복잡한 조건부 평가를 수행할 수 있게 해주는 키워드입니다. 예를 들어 정규식을 테스트합니다.

내가 올바르게 이해했다면 이중 괄호는 [[스크립트를 실행하는 쉘에 따라 이식성 문제가 있을 수 있습니다(예를 들어 Bourne 쉘은 이를 지원하지 않습니다).

그러므로 질문입니다. 정규식의 변수를 테스트하려는 경우 명령 test(또는 단일 대괄호 명령)을 사용하여 [수행할 수 있는 방법이 있습니까?

답변1

전통적으로 test [다른 이름을 사용했습니다(하드 링크).하나[프로그램은 뒤에 ];가 필요하다는 점을 제외하면 두 경우 모두 정확히 동일한 작업을 수행합니다. 오늘날에는 ].이 프로그램이나 내장 프로그램은 정규식을 수행하지 않습니다.

정규식을 테스트하는 POSIX(및 전통적인) 방법은 입니다 . 첫 번째 방법은 및 와 매우 유사한 expr grep sed awk정규식을 포함하는 작업을 수행합니다 . 두 번째 코어는 정규식만 수행하지만 관련 옵션이 많습니다. 마지막 두 사람은 많은 일을했습니다test/[[[포함하다하지만 이것이 원하는 경우에만 이 작업을 수행할 수 있습니다. 또 다른 일반적이지만 POSIX가 아닌 접근 방식은 perl.

관련 정보