개발 환경 및 프로젝트 관리/Linux 개념

Bash에서의 함수 선언과 사용

Data Jun 2025. 10. 9. 10:10

Bash 스크립트에서 함수를 사용하면 코드의 재사용성과 가독성을 높일 수 있습니다.
이번 글에서는 함수 선언 방법함수의 리턴/출력 처리 방식을 간단히 정리해보겠습니다.

 

함수 선언 (Function Declaration)

Bash에서는 함수를 아래 세 가지 형태로 선언할 수 있습니다.

# 1️⃣ 함수 이름만 사용
hello_world() {
    ...
}

# 2️⃣ function 키워드 사용 (괄호 생략)
function hello_world {
    ...
}

# 3️⃣ function 키워드와 괄호 함께 사용
function hello_world() {
    ...
}

세 가지 모두 동일하게 동작하며, 개인이나 팀의 코딩 스타일에 맞게 선택할 수 있습니다.

 

 

함수의 사용 (Function Usage)

함수를 선언한 후에는 단순히 함수 이름을 호출하면 실행됩니다

hello_world

 

리턴값 (Return Value)

함수의 종료 상태(exit status)는 $?로 확인할 수 있습니다.

hello_world
echo $?  # 0이면 성공, 0이 아니면 실패

 

출력값 (Output Value)

함수의 출력값은 command substitution을 통해 받을 수 있습니다.

result=$(hello_world)
# 또는
result=`hello_world`

 

로컬 변수 (Local Variable)

함수 내부에서만 사용하는 변수를 선언하려면 local 키워드를 사용합니다.

function add_numbers() {
    local sum=$(( $1 + $2 ))
    echo $sum
}

 

변수 범위 (Scope)

  • local로 선언하지 않은 변수는 전역(global) 변수로 동작합니다.
  • 따라서, 다른 함수나 전역 코드에서 값이 덮어씌워질 수 있으니 주의해야 합니다.

 

 

정리하면

  • 함수 선언: hello_world() 또는 function hello_world()
  • 리턴값: $? (exit status)
  • 출력값: $(command) 또는 `command`
  • 로컬 변수: local 키워드 사용
  • 변수 범위: 기본은 전역, local로 지역화 가능