13. 함수를 만들어서 재사용성을 높이세요.

안녕하세요. 언제나 휴일, 언휴예요.

프로그래밍에서 자주 사용하는 구문을 매 번 작성하지 않고 필요할 때 재사용성을 높이는 다양한 방법이 있어요. 그 중에서 가장 기본이 함수입니다.

이번 강의에서는 간단하게 함수를 정의하고 필요할 때 함수를 호출하여 재사용하는 방법을 소개할거예요.

함수는 함수 이름, 입력 매개 변수, 수행 구문, 리턴 값 등으로 구성합니다. 여기에서는 입력 매개 변수와 리턴 값이 없는 단순한 구조로 설명을 할 거예요. 그리고 수행 구문도 단지 현재 어느 함수를 수행하는지 출력하는 간단한 형태로 설명할 거예요.

쉘 프로그래밍에서 함수를 정의할 때는 function 키워드 뒤에 함수명을 명시한 후에 괄호로 블럭을 지정하고 괄호 내부에 수행할 구문을 작성하는 방법이 있어요. 참고로 function 키워드는 선택 사항이예요.

[function] 함수명(){

수행 구문

}

예1)

function f1(){

    echo Here is f1 function

}

예2)

f2(){

    echo Here is f2 function

}

그리고 함수를 호출할 때는 함수 이름을 이용합니다.

다음은 두 개의 함수(f1, f2)를 정의하고 이를 호출하는 예제 코드입니다.

#function_sh
#쉘 프로그래밍 실습
#함수 정의 및 호출
#작성자 : eh. jang

function f1(){
    echo Here is f1 function.
}

f2(){
    echo Here is f2 function.
}

echo “test”
f1
f2
f1
echo “end test”
[그림 1] 함수 정의 및 호출
[그림 1] 함수 정의 및 호출

함수 내부에서 다른 함수를 호출할 수도 있어요. 함수를 호출하면 해당 함수를 수행한 후에 호출한 곳으로 다시 복원합니다.

다음 예제는 f2 함수에서 “Here is f2 function.”을 출력한 후에 f1 함수를 호출하고 다시 “end of f2 function.”을 출력하는 예제입니다. 수행한 결과를 보면 “Here is f2 function”을 출력한 후에 f1 함수에 의해 “Here is f1 function.”을 출력합니다. 그리고 f1 함수가 끝나면 다시 f2 함수로 되돌아가서 “end of f2 function.”을 출력하는 것을 확인할 수 있어요.

#function2_sh
#쉘 프로그래밍 실습
#함수에서 함수 호출
#작성자 : eh. jang

function f1(){
    echo Here is f1 function.
}

f2(){
    echo Here is f2 function.
    f1
    echo end of f2 function
}

echo “test”
f2
echo “end test”
[그림 2] 함수에서 함수 호출
[그림 2] 함수에서 함수 호출

다음 강의에서는 함수의 인자와 반환 값에 관하여 다룰거예요.