SW/리눅스

Linux : Bash Case 문 사용 방법, 예제, 명령어

얇은생각 2021. 6. 19. 07:30
반응형

배시 케이스 문은 일반적으로 여러 가지 다른 옵션이 있는 경우 복잡한 조건을 단순화하는 데 사용됩니다. 문장이 중첩된 경우 대신 사례문을 사용하면 bash 스크립트를 보다 읽기 쉽고 쉽게 유지관리할 수 있습니다.

Bash case 문장은 Javascript 또는 C 스위치 문과 유사한 개념을 가지고 있습니다. 가장 큰 차이점은 C 스위치 문과 달리 Bash case 문에서 패턴 일치를 찾고 해당 패턴과 연결된 문을 실행한 후에는 패턴 일치를 계속 검색하지 않는다는 점입니다.

이 튜토리얼에서는 Bash case 문장의 기본 사항을 다루고 셸 스크립트에서 사용하는 방법을 보여드리겠습니다.

 

 

Linux : Bash Case 문 사용 방법, 예제, 명령어

 

 

/소문자를 구분

Bash case 문에는 다음 형식이 있습니다.

case EXPRESSION in

  PATTERN_1)
    STATEMENTS
    ;;

  PATTERN_2)
    STATEMENTS
    ;;

  PATTERN_N)
    STATEMENTS
    ;;

  *)
    STATEMENTS
    ;;
esac

 

 

  • 각 사례문은 사례 키워드로 시작하고 사례 표현식 및 인 키워드 뒤에 나옵니다. 문이 esac 키워드로 끝납니다.
  • | 연산자로 구분된 여러 패턴을 사용할 수 있습니다. ) 연산자는 패턴 목록을 종료합니다.
  • 패턴에는 특수 문자가 포함될 수 있습니다.
  • 패턴 및 패턴과 연관된 명령을 절이라고 합니다.
  • 각 절은 ;;로 종료되어야 합니다.
  • 식과 일치하는 첫 번째 패턴에 해당하는 명령이 실행됩니다.
  • 와일드카드 별표 기호(*)를 최종 패턴으로 사용하여 기본 사례를 정의하는 것이 일반적입니다. 이 패턴은 항상 일치합니다.
  • 일치하는 패턴이 없으면 반환 상태는 0입니다. 그렇지 않으면 반환 상태는 실행된 명령의 종료 상태입니다.

 

 

 

사례 명세서 예제

다음은 특정 국가의 공용어를 인쇄하는 배시 스크립트에서 사례 문장을 사용하는 예입니다.

# languages.sh

#!/bin/bash

echo -n "Enter the name of a country: "
read COUNTRY

echo -n "The official language of $COUNTRY is "

case $COUNTRY in

  Lithuania)
    echo -n "Lithuanian"
    ;;

  Romania | Moldova)
    echo -n "Romanian"
    ;;

  Italy | "San Marino" | Switzerland | "Vatican City")
    echo -n "Italian"
    ;;

  *)
    echo -n "unknown"
    ;;
esac

 

 

사용자 지정 스크립트를 파일로 저장하고 명령줄에서 실행합니다.

bash languages.sh

 

 

이 스크립트는 국가를 입력하라는 메시지를 표시합니다. 예를 들어 "Lithuania"를 입력하면 첫 번째 패턴과 일치하고 해당 절의 에코 명령이 실행됩니다.

스크립트는 다음 출력을 인쇄합니다.

# Enter the name of a country: Lithuania
# The official language of Lithuania is Lithuanian

 

 

기본 와일드카드 별표 기호를 제외한 다른 패턴과 일치하지 않는 국가를 입력하면 아르헨티나 스크립트가 기본 절 내에서 에코 명령을 실행합니다.

# Enter the name of a country: Argentina
# The official language of Argentina is unknown

 

반응형