쉘 스크립트(/bin/sh)에서 "case $1/$2"의 슬래시는 무엇을 합니까?

쉘 스크립트(/bin/sh)에서 "case $1/$2"의 슬래시는 무엇을 합니까?

확립된이것아치 위키의 예

#!/bin/sh
case $1/$2 in
  pre/*)
    echo "Going to $2..."
    ;;
  post/*)
    echo "Waking up from $2..."
    ;;
esac

그리고 그것이 논리 연산자인지 아니면 다른 것인지 알 수 있는 방법이 없습니다.

답변1

여기에는 특별한 것이 없습니다. 구문 은 다음 case과 같습니다

case word in [ [(] pattern [ | pattern ] ... ) list ;; ] ... esac

질문의 예에서는 word및 조합으로 구성됩니다. 특별한 의미는 없고 그냥 캐릭터입니다.$1/$2/

추신: 사실 사용법이 좀 이상합니다. $2후자가 일치하기 때문에 *값은 $2중요하지 않습니다. Wiki에 설명된 맥락에서 다음과 같이 쓸 수도 있습니다.

#!/bin/sh
case $1 in
  pre)
    echo "Going to $2..."
    ;;
  post)
    echo "Waking up from $2..."
    ;;
esac

suspend그러나 경우에 따라 , hibernate또는 hybrid(가능한 값)이 $2관련될 수 있으므로 이는 일반적인 패턴일 뿐입니다.

관련 정보