내 명령과 일치하는 올바른 패턴은 무엇입니까

내 명령과 일치하는 올바른 패턴은 무엇입니까

OS: AIX 7.1
저는 사용자가 몇 가지 명령을 입력하고 실행할 수 있는 쉘 스크립트를 작성 중입니다. 명령 중 하나는 다음과 같은 형식을 취합니다.

compile appname

애플리케이션 이름은 [ccms|asws] 중 하나만 가능합니다. Case 문에서 이를 일치시키는 올바른 패턴은 무엇입니까?

이것은 내 쉘 스크립트입니다.

while true
do
 read cmd
 case $cmd in
 "compile(\s)(ccms)|(asws)") compile
  ;;
 *) break
  ;;
 esac
done

compile(){
 ...
}

답변1

read명령을 나누 십시오 .

read cmd arguments
case $cmd in
  compile)
    ;;
esac

답변2

이는 모든 POSIX 호환 셸에서 작동합니다.

case $cmd in
    "compile ccms"|"compile asws") compile
    ;;
    *) break
    ;;
esac

관련 정보