0Pricing
Linux Command Line & Bash Scripting Mastery · 강의

셸 함수와 재사용 가능한 코드 조각

Bash 함수를 정의하고 사용하여 명령을 셸에서 재사용 가능하고 매개변수화된 구성 요소로 묶는 방법을 배웁니다.

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

셸 함수를 사용하는 이유

셸 함수는 여러 명령을 하나의 이름 아래 묶어 다시 입력하지 않고 재사용할 수 있게 합니다.

  • 명령을 복사해 붙여넣는 것보다 빠릅니다
  • 긴 별칭보다 깔끔합니다
  • 별칭과 달리 인수를 받을 수 있습니다
mkcd() {
  mkdir -p "$1" && cd "$1"
}

함수 정의하기

가장 간단한 형식은 name() { ... } 문법을 사용하는 것입니다. 중괄호 안의 명령은 이름으로 함수를 호출할 때 실행됩니다.

greet() {
  echo "Hello from a function"
}
greet

함수 인수

함수는 스크립트와 마찬가지로 위치 매개변수를 받습니다. 예를 들어 $1, $2가 있습니다. $#은 개수이고 $@은 모든 인수로 확장됩니다.

backup() {
  cp "$1" "$1.bak"
  echo "Backed up $1"
}
backup notes.txt

반환 값과 종료 상태

함수는 return N(0~255)을 통해 종료 상태를 반환합니다. 이는 데이터를 반환하는 용도가 아니라 성공 또는 실패를 확인하는 데 사용합니다.

is_root() {
  [ "$(id -u)" -eq 0 ] && return 0 || return 1
}
if is_root; then echo root; else echo normal; fi

echo로 출력 반환하기

return은 상태 코드만 전달하므로 실제 출력은 $( )를 사용해 출력하고 캡처합니다.

timestamp() {
  date +%Y%m%d-%H%M%S
}
name="log-$(timestamp).txt"
echo "$name"

지역 변수

기본적으로 함수 내부의 변수는 전역 변수입니다. local을 사용하면 변수의 범위를 함수로 제한하여 셸을 불필요하게 오염시키지 않을 수 있습니다.

count_lines() {
  local n
  n=$(wc -l < "$1")
  echo "$1 has $n lines"
}

기본 인수 값

매개변수 확장 ${1:-default}를 사용하면 인수가 없을 때 기본값으로 대체할 수 있습니다.

say() {
  local msg="${1:-Hello World}"
  echo "$msg"
}
say
say "Custom message"

함수와 별칭

별칭은 단순히 텍스트를 치환하므로 위치 인수를 깔끔하게 받을 수 없습니다. 함수는 분기하고 반복하며 입력을 처리할 수 있습니다.

  • 고정된 단축 명령에는 별칭을 사용합니다
  • 논리나 인수가 필요할 때는 함수를 사용합니다
alias ll='ls -la'
lt() { ls -la "${1:-.}" | tail -n "${2:-5}"; }

함수를 지속적으로 사용하기

프롬프트에서 정의한 함수는 셸이 종료되면 사라집니다. 모든 세션에서 사용할 수 있도록 ~/.bashrc에 추가합니다.

# Append to ~/.bashrc
extract() {
  case "$1" in
    *.tar.gz) tar xzf "$1" ;;
    *.zip)    unzip "$1" ;;
    *)        echo "Unknown format" ;;
  esac
}

함수 목록 확인 및 삭제

declare -F는 함수 이름을 나열하고, declare -f name은 본문을 표시합니다. unset -f name으로 함수를 삭제합니다.

declare -F
declare -f greet
unset -f greet

함수 조합하기

함수는 다른 함수를 호출할 수 있으므로, 작고 재사용 가능한 구성 요소를 결합해 더 큰 도구를 만들 수 있습니다.

log() { echo "[$(date +%T)] $*"; }
deploy() {
  log "Starting deploy"
  log "Done"
}
deploy

빠른 확인

셸 함수에 대한 이해도를 확인해 보십시오.

요약

재사용 가능한 셸 함수를 만드는 방법을 배웠습니다.

  • name() { ... }으로 정의하고 이름으로 호출합니다
  • 인수에는 $1, $@, $#을 사용하고 상태에는 return을 사용합니다
  • local로 변수의 범위를 제한하고 echo로 데이터를 반환합니다
  • ~/.bashrc에 저장하고 declare -f로 확인합니다

자주 묻는 질문

“셸 함수와 재사용 가능한 코드 조각” 강의는 무료인가요?

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

“셸 함수와 재사용 가능한 코드 조각”에서 뭘 배우나요?

Bash 함수를 정의하고 사용하여 명령을 셸에서 재사용 가능하고 매개변수화된 구성 요소로 묶는 방법을 배웁니다. 브라우저에서 직접 실행하는 실습 코드로 Linux Command Line & Bash Scripting Mastery을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

Linux Command Line & Bash Scripting Mastery을(를) 시작하는 데 경험이 필요한가요?

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

“셸 함수와 재사용 가능한 코드 조각” 강의는 얼마나 걸리나요?

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

이 Linux Command Line & Bash Scripting Mastery 강의에서 코드를 작성하고 실행할 수 있나요?

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

이 강의의 모든 강의

  1. 작업 제어(bg, fg, jobs)
  2. 셸 확장과 와일드카드 처리
  3. 별칭과 사용자 지정 프롬프트
  4. 셸 함수와 재사용 가능한 코드 조각
← Linux Command Line & Bash Scripting Mastery(으)로 돌아가기