[bash] 문자열 부분 매칭 Develop Tip

필요에 의하여 subversion을 이용하는데
1.7.* 버전만을 필요한 경우가 생겼습니다.
그런데 이것을 시스템에서 bash 쉘 스크립트로 쉽게 하려고 하는데
찾아보았더니 다음과 같은 코드로 쉽게 할 수 있었습니다.

SVNV=`svn --version --quiet`
echo "Your subversion version is <$SVNV>."
if [[ $SVNV != 1.7.* ]];then
    echo "  Error: subversion version 1.7.* must be used!"
    exit 2
fi

핵심은 

[[ "1.8.3" == 1.7.* ]]

라는 구문입니다.

bash에서 [ 은 builtin test 명령입니다.
(man 페이지에서도 man test 를 하면 나옵니다)

하지만 [[ 와 같은 이중 대괄호는 
&&, ||, =~ (정규식 매칭) 과 같은 확장 expression test 기능을 제공하는데
그 와중에 이런 * 확장 매칭을 가능하게 합니다.

물론 장비와 같이 sh, rsh 등과 같이 bash가 지원 안된다면 
호환성을 면밀히 따져봐야 합니다.

어느분께는 도움이 되셨기를...

핑백

  • 지훈현서 : [sh] 부분 문자열 매칭 2016-05-04 17:31:08 #

    ... 지난번에 bash 안에서 시작되는 부분 문자열 매칭을 살펴본 바 있습니다. 그런데 문제는 이게 sh 에서는 안된다는 것이었습니다.주의할 것이 bash 자체가 sh의 확장판이며 몇가지 안되는 것이 ... more

덧글

댓글 입력 영역

구글애드텍스트