linux 명령어 case

내부 명령어 확인하기.

$ case
-sh: 35: Syntax error: newline unexpected (expecting word)
$      
Linux 명령어 case

Linux 명령어 case

조건에 따라 명령을 실행하는 제어 구조

1. 자세한 설명

case 명령어는 Linux에서 셸 스크립트 내에서 사용되며 조건에 따라 다양한 명령을 실행할 수 있는 제어 구조입니다. 특정 값이나 패턴이 일치하는 경우에 대응하는 명령 블록을 실행하며, 복잡한 조건문을 간소화하는 데 유용합니다.

2. 사용법

  1. 기본 구조
    case [값] in [패턴]) 명령;; esac
    값을 패턴과 비교하여 해당하는 명령을 실행합니다.
  2. 다중 조건 처리
    여러 패턴을 정의하여 각각 다른 명령을 실행할 수 있습니다.
  3. 기본 동작 정의
    패턴에 맞지 않는 경우 기본 동작을 정의할 수 있습니다.

3. 자세하게 설명

case 명령어는 다음과 같은 특징을 가지고 있습니다:

  • 패턴 매칭: 와일드카드(*, ?)를 사용하여 다양한 조건을 처리할 수 있습니다.
  • 가독성 향상: 복잡한 조건문을 간소화하여 스크립트를 쉽게 읽고 유지보수할 수 있게 합니다.
  • 다중 명령 실행: 각 패턴에 대해 여러 명령을 실행할 수 있습니다.
  • 기본값 설정: 패턴이 없는 경우를 처리하기 위한 기본 동작을 정의할 수 있습니다.

4. 자세한 명령어 사용법

다음은 case 명령어의 다양한 사용 예제입니다:

# 기본 구조
case $1 in
  start)
    echo "서비스를 시작합니다."
    ;;
  stop)
    echo "서비스를 중지합니다."
    ;;
  restart)
    echo "서비스를 재시작합니다."
    ;;
  *)
    echo "알 수 없는 옵션입니다."
    ;;
esac

# 파일 확장자에 따라 처리
filename="example.txt"
case "$filename" in
  *.txt)
    echo "텍스트 파일입니다."
    ;;
  *.jpg | *.png)
    echo "이미지 파일입니다."
    ;;
  *)
    echo "알 수 없는 파일 유형입니다."
    ;;
esac

# 사용자 입력 값 처리
read -p "옵션을 선택하세요 (start/stop/restart): " option
case $option in
  start)
    echo "시작됨"
    ;;
  stop)
    echo "중지됨"
    ;;
  restart)
    echo "재시작됨"
    ;;
  *)
    echo "잘못된 입력"
    ;;
esac

# 스크립트에서 조건별 명령 실행
#!/bin/bash
option="stop"
case $option in
  start)
    echo "서비스 시작"
    ;;
  stop)
    echo "서비스 중지"
    ;;
  *)
    echo "기본 동작"
    ;;
esac

# 여러 패턴 처리
input="test"
case $input in
  test | TEST)
    echo "테스트 실행"
    ;;
  prod)
    echo "프로덕션 실행"
    ;;
  *)
    echo "기본 상태"
    ;;
esac

# 특정 사용자 역할 처리
role="admin"
case $role in
  admin)
    echo "관리자 권한 부여"
    ;;
  user)
    echo "사용자 권한 부여"
    ;;
  *)
    echo "권한 없음"
    ;;
esac

# 결과를 로그 파일에 저장
option="restart"
case $option in
  restart)
    echo "재시작됨" > result.log
    ;;
  *)
    echo "실패" > result.log
    ;;
esac

# 입력 값 확인 및 처리
read input
case $input in
  y | Y)
    echo "YES 선택"
    ;;
  n | N)
    echo "NO 선택"
    ;;
  *)
    echo "잘못된 선택"
    ;;
esac

# 특정 프로그램 실행 조건
command="backup"
case $command in
  backup)
    echo "백업 수행 중"
    ;;
  restore)
    echo "복원 수행 중"
    ;;
  *)
    echo "알 수 없는 작업"
    ;;
esac

# 복잡한 조건 처리
case $1 in
  [0-9]*)
    echo "숫자로 시작"
    ;;
  [a-z]*)
    echo "소문자로 시작"
    ;;
  [A-Z]*)
    echo "대문자로 시작"
    ;;
  *)
    echo "기타"
    ;;
esac
            

위의 예제는 case 명령어를 사용하여 조건에 따른 명령을 실행하는 다양한 방법을 보여줍니다.

© 2025 Linux 명령어 설명

Categories:

No responses yet

답글 남기기