내가 이해하는 한(자유롭게 정정해 주십시오. 저는 쉘 스크립팅이 처음입니다.) 대괄호는 [
Unix 명령이자 test
조건을 테스트할 수 있는 명령의 대안입니다( 0
조건이 true이면 true
반환 하고 1
그렇지 않으면 반환).
이중 괄호는 [[
더 복잡한 조건부 평가를 수행할 수 있게 해주는 키워드입니다. 예를 들어 정규식을 테스트합니다.
내가 올바르게 이해했다면 이중 괄호는 [[
스크립트를 실행하는 쉘에 따라 이식성 문제가 있을 수 있습니다(예를 들어 Bourne 쉘은 이를 지원하지 않습니다).
그러므로 질문입니다. 정규식의 변수를 테스트하려는 경우 명령 test
(또는 단일 대괄호 명령)을 사용하여 [
수행할 수 있는 방법이 있습니까?
답변1
전통적으로 test [
다른 이름을 사용했습니다(하드 링크).하나[
프로그램은 뒤에 ]
;가 필요하다는 점을 제외하면 두 경우 모두 정확히 동일한 작업을 수행합니다. 오늘날에는 ]
.이 프로그램이나 내장 프로그램은 정규식을 수행하지 않습니다.
정규식을 테스트하는 POSIX(및 전통적인) 방법은 입니다 . 첫 번째 방법은 및 와 매우 유사한 expr grep sed awk
정규식을 포함하는 작업을 수행합니다 . 두 번째 코어는 정규식만 수행하지만 관련 옵션이 많습니다. 마지막 두 사람은 많은 일을했습니다test/[
[[
포함하다하지만 이것이 원하는 경우에만 이 작업을 수행할 수 있습니다. 또 다른 일반적이지만 POSIX가 아닌 접근 방식은 perl
.