2012-08-28 2 views

답변

7

사례를 사용할 수 있습니다. 그것은 정규식을 사용하지 않지만,이 보조 노트에 훨씬 더 globs와와

case $compare in 
    lp:*|http://*|https://*|svn://*|svn+ssh://*|bzr://*|bzr+ssh://*|git:/*|ssh://*) 
     echo "We are compared" 
    ;; 
esac 

하지, 당신 avoid using all uppercase variable names해야 특수 쉘 변수 나 환경 변수를 덮어 쓸 위험이있다.

4

대시는 내장을 비교 정규식을 가지고 있지 않지만, 당신은 항상 그렙를 사용할 수 있습니다

if echo "$compare" | egrep -q "$compare_to"; then 
    ... 

+0

'echo' (. 그 나는 두 번째 셸에서 대문자 변수에 대한 geirha의 참고 @ 참고) 이런 종류의 문맥에서는 항상 무서운 것입니다. '사례'답변은 관용적이고 우아하며 외부 프로세스없이 문제를 완전히 해결합니다. – tripleee

+0

@ tripleee :'case' 문법은 매우 우아하지 않다고 생각하지만, 좀 더 관용적이며 서브 프로세스를 절약 할 수 있다고 동의합니다. (정규 표현식이 아닌 glob으로 패턴을 표현할 수 있다면이 특별한 경우에 가능합니다.) BTW, 에코가 걱정된다면 대신'printf "% s \ n" "$ compare"'를 사용하십시오. –

관련 문제