0Pricing
Linux Server Deployment & SSH Mastery · 강의

함수, 인수와 재사용 가능한 스크립트

Bash 스크립트를 모듈화하고 유지 관리하기 쉽게 만듭니다. 함수를 정의하고 명령줄 인수를 전달하고 검증하며 값을 반환하고 여러 서버 자동화 작업에서 재사용할 수 있도록 스크립트를 구성합니다.

함수, 인수와 재사용 가능한 스크립트은(는) CoddyKit의 무료 Linux Server Deployment & SSH Mastery 강의입니다. 이것은 4개 중 4번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Linux Server Deployment & SSH Mastery 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Linux Server Deployment & SSH Mastery 강의에는 총 4개의 강의가 포함되어 있습니다.

스크립트에서 도구로

스크립트를 작성하고 작업을 자동화하며 오류를 처리할 수 있습니다. 다음 단계는 스크립트를 재사용 가능하게 만드는 것입니다. 즉, 인수를 받는 함수로 코드를 구성하여 하나의 스크립트가 다양한 상황에 사용되도록 하는 것입니다.

이렇게 일회성 스크립트가 실제 관리 도구로 발전합니다.

함수 정의

Bash 함수는 명령을 하나의 이름 아래에 묶습니다. 한 번 정의하고 여러 번 호출하십시오. 본문은 중괄호 사이에 작성합니다.

greet() {
  echo 'Hello from the function!'
}

greet

함수에 인수 전달하기

함수는 인수를 위치에 따라 받습니다. $1, $2 등이 이에 해당합니다. $@는 모든 인수이고 $#은 인수 개수입니다.

greet() {
  echo "Hello, $1! You are $2 years old."
}

greet Alice 30

스크립트 수준 인수

동일한 위치 인수 변수를 스크립트 전체에서 사용할 수 있습니다. ./deploy.sh staging v2를 실행하면 스크립트는 $1을 'staging'으로, $2를 'v2'로 읽습니다.

#!/bin/bash
ENV=$1
VERSION=$2
echo "Deploying $VERSION to $ENV"

인수 검증

견고한 도구는 입력을 확인합니다. 예상되는 인수 개수를 검증하고 인수가 없으면 사용법 안내 메시지를 표시한 뒤 종료하십시오.

if [ $# -lt 2 ]; then
  echo "Usage: $0 <env> <version>"
  exit 1
fi

함수에서 상태 반환하기

함수는 return을 통해 종료 상태를 반환합니다(0 = 성공). 호출하는 쪽에서는 $?로 확인하거나 if에서 직접 확인합니다.

is_root() {
  [ "$(id -u)" -eq 0 ]
}

if is_root; then echo 'root'; else echo 'not root'; fi

함수에서 데이터 반환하기

상태가 아닌 실제 데이터를 반환하려면 echo로 출력하고 명령 치환으로 캡처하십시오. 호출하는 쪽에서는 출력 결과를 변수에 할당합니다.

timestamp() {
  date +%Y%m%d_%H%M%S
}

NOW=$(timestamp)
echo "Backup name: backup_$NOW"

지역 변수

기본적으로 Bash 변수는 전역이므로 함수 간에 버그가 발생할 수 있습니다. 함수 내부에서만 사용하는 변수는 local로 선언하여 서로 격리하십시오.

add() {
  local result=$(( $1 + $2 ))
  echo $result
}

echo "Sum: $(add 3 4)"

기본값과 이름 있는 플래그

매개변수 확장으로 적절한 기본값을 제공하고, 더 사용하기 쉬운 도구를 위해 플래그를 분석하십시오.

  • ${1:-default} — $1이 설정되지 않았으면 'default'를 사용합니다
  • getopts — -v, -f file 형식의 플래그를 분석합니다
ENV=${1:-staging}
echo "Target environment: $ENV"

함수 라이브러리 불러오기

공유 함수를 별도의 파일에 작성하고 여러 스크립트에서 source로 불러오십시오. 이렇게 하면 어디서나 도우미 함수를 복사해 붙여 넣지 않아도 됩니다.

# in lib.sh: define log(), is_root(), etc.
source ./lib.sh
log 'Starting deployment'

권장 사항

유지 관리하기 쉬운 스크립트를 작성하십시오:

  • 논리를 작고 이름이 있는 함수로 나누십시오
  • 항상 인수를 검증하고 사용법을 출력하십시오
  • 함수 변수에는 local을 사용하십시오
  • source로 불러온 라이브러리를 통해 도우미 함수를 공유하십시오

빠른 확인

Bash 함수에 대해 얼마나 알고 있는지 테스트해 보십시오.

복습

이제 재사용 가능한 Bash 도구를 만들 수 있습니다:

  • 함수를 정의하고 반복해서 호출하기
  • 인수($1, $@, $#)를 전달하고 검증하기
  • return으로 상태를 반환하고 echo와 명령 치환으로 데이터를 반환하기
  • local 변수와 source로 불러온 공유 라이브러리 사용하기

이러한 패턴을 사용하면 일회성 스크립트가 유지 관리하기 쉬운 자동화 도구 모음으로 발전합니다.

자주 묻는 질문

“함수, 인수와 재사용 가능한 스크립트” 강의는 무료인가요?

네 — “함수, 인수와 재사용 가능한 스크립트” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Linux Server Deployment & SSH Mastery 강의 전체를 잠금 해제할 수 있습니다. Linux Server Deployment & SSH Mastery 강의에는 총 4개의 강의가 포함되어 있습니다.

“함수, 인수와 재사용 가능한 스크립트”에서 뭘 배우나요?

Bash 스크립트를 모듈화하고 유지 관리하기 쉽게 만듭니다. 함수를 정의하고 명령줄 인수를 전달하고 검증하며 값을 반환하고 여러 서버 자동화 작업에서 재사용할 수 있도록 스크립트를 구성합니다. 브라우저에서 직접 실행하는 실습 코드로 Linux Server Deployment & SSH Mastery을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

Linux Server Deployment & SSH Mastery을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 Linux Server Deployment & SSH Mastery은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 4번째 강의입니다.

“함수, 인수와 재사용 가능한 스크립트” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 Linux Server Deployment & SSH Mastery 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 Linux Server Deployment & SSH Mastery 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. Bash 스크립팅 입문
  2. 서버 작업 자동화
  3. 스크립트의 오류 처리 및 로깅
  4. 함수, 인수와 재사용 가능한 스크립트
← Linux Server Deployment & SSH Mastery(으)로 돌아가기