고급 셸 스크립팅 기법

고급 셸 스크립팅 기법을 학습합니다. 이 모듈은 셸 함수 기본, 변수 범위 및 반환 상태, Trap 을 사용한 오류 처리, 문자열 조작 기법, 배열 처리를 다룹니다. 실습 랩과 실제 과제를 통해 이러한 필수적인 Linux 기술을 숙달하게 될 것입니다.

DevOps EngineerLinuxDevOps

💡 이 튜토리얼은 영어로 번역되었습니다. 원본을 보려면 영어로 전환

소개

이 중급 과정에서는 기본 Bash 스크립트에 재사용 함수, 통제된 범위, 정리 처리, 매개변수 확장, 배열을 추가합니다. 5개의 단계별 실습에서 로직을 구성하고, 텍스트 출력과 반환 상태를 구분하고, 종료에 대응하고, 외부 도구 없이 문자열을 다루고, 컬렉션을 안전하게 처리합니다.

마지막 챌린지에서는 준비된 로그 배열을 유지하고 함수 안에서 .backup 이름을 만들고, 존재하는 파일을 복사하고, 누락 대상을 경고하고, 종료 시 임시 보고서를 삭제하는 log_manager.sh를 구축합니다.

학습 내용

  • Bash 함수를 정의하고 호출하며 함수 인자로 값 전달하기
  • local 변수로 상태를 보호하고 의도치 않은 전역 변경 방지하기
  • 함수에서 상태 코드를 반환하고 즉시 $?를 저장해 결과별로 분기하기
  • trap으로 SIGINT와 EXIT에 정리 함수 등록하기
  • Bash 매개변수 확장으로 문자열 자르기, 치환, 기본값 제공하기
  • 배열을 선언하고 요소를 추가하고 전체 값을 확장하고 안전하게 인용해 반복하기
  • 함수 안에서 .log를 .backup으로 바꿔 백업 파일명 만들기
  • 정리, 배열, 파일 검사, 함수, 경고를 하나의 실행 스크립트에 통합하기

추천 대상

이 과정은 Bash 스크립팅 기초를 마치고 작은 유지보수 스크립트를 더 모듈화하고 예측 가능하게 만드는 중급 기법을 배우려는 학습자에게 적합합니다.

선수 지식: Bash 스크립트, 변수, 위치 인자, 조건문, 루프, 파일 검사, 종료 코드, 리디렉션, 실행 권한, 기본 파일 명령을 알아야 합니다.

학습 환경: Ubuntu 기반의 LabEx 터미널에서 Bash, 편집 가능한 스크립트, 임시 파일과 신호 실습, 마지막 챌린지용 준비된 애플리케이션 로그 3개를 사용합니다.

자주 묻는 질문

과정은 어떻게 구성되어 있나요?

처음 5개는 단계별 실습입니다. 여섯 번째 챌린지에서는 Cleanup Trap, 함수, 배열, 문자열 치환, 루프를 결합한 log_manager.sh를 만듭니다.

마지막 로그 관리자가 로그를 압축, 삭제, 실제 로테이션하나요?

아니요. 준비된 각 .log를 같은 위치의 .backup으로 복사하고 원본을 보존합니다. 압축, 보존, 잘라내기, logrotate 구성은 하지 않습니다.

Trap 실습은 어떤 이벤트를 처리하나요?

단계별 실습은 SIGINT와 EXIT에 정리를 등록해 Ctrl+C와 정상 종료 때 임시 파일을 삭제합니다. 마지막 챌린지는 report.txt를 삭제하는 EXIT Trap을 요구합니다.

Bash 함수가 return으로 문자열을 반환할 수 있나요?

이 실습에서는 아닙니다. return은 제어 흐름용 0~255 정수 상태를 전달하고 텍스트는 echo로 출력하거나 명령 치환으로 캡처합니다.

강사

labby
Labby
Labby is the LabEx teacher.