Bash Shell Script - 함수(Function)

By JS | Last updated: September 27, 2021

Linux의 Bash Shell Script에서 함수를 정의하고 호출하는 방법을 소개합니다.

1. 함수 Syntax

다음과 같이 함수를 정의할 수 있습니다. 함수 안에는 쉘 명령어들을 호출할 수 있습니다.

function_name() {
   commands
}

2. 함수 정의 및 호출

다음과 같이 함수를 정의하고 호출할 수 있습니다. 함수 내부에는 echo를 이용하여 간단한 문자열을 터미널에 출력합니다.

함수 호출은 my_function 처럼 함수 이름만 입력하면 됩니다.

#!/bin/bash

# Define a function
my_function() {
  echo "Calling my_function"
}

# Invoke a function
my_function

Output:

$ sh func.sh
Calling my_function

3. 함수에 인자 전달

함수에 인자를 전달할 때는 함수 이름 다음에 인자를 순차적으로 입력하면 됩니다. 아래 예제에서는 aaa123을 인자로 함수에 전달하였습니다.

함수 내부에서는 $1, $2와 같은 형식으로 인자에 접근할 수 있습니다. $1은 첫번째로 전달된 인자, $2는 두번째로 전달된 인자를 의미합니다. 여러 인자를 전달할 때, 이처럼 $에 숫자를 붙여서 접근할 수 있습니다.

#!/bin/bash

my_function() {
  echo "Calling my_function p1: $1, p2: $2"
}

my_function aaa 123

Output:

$ sh func.sh
Calling my_function p1: aaa, p2: 123

4. 함수에서 값 리턴

함수에서 어떤 값을 리턴할 때 return 키워드를 사용하면 됩니다. 다른 언어들과 같이 return이 호출되면, 함수가 종료되며 값이 리턴됩니다.

리턴이 되면, 함수 외부에서 $?를 통해 return value를 읽을 수 있습니다.

다음 예제 코드와 실행 결과를 보시면 쉽게 이해할 수 있습니다.

#!/bin/bash

my_function() {
  echo "Calling my_function p1: $1, p2: $2"
  return 100
}

my_function aaa 123

ret=$?

echo "Return value: $ret"

Output:

$ sh func.sh
Calling my_function p1: aaa, p2: 123
Return value: 100
댓글을 보거나 쓰려면 이 버튼을 눌러주세요.
codechachaCopyright ©2019 codechacha