Computer >> 컴퓨터 >  >> 프로그램 작성 >> BASH 프로그래밍

Bash에서 함수를 만들고 호출하는 방법

Bash에서 함수를 만들고 호출하는 방법에 대한 빠른 가이드

함수는 일부 작업을 수행하는 데 사용되는 재사용 가능한 코드 블록입니다. 함수를 통해 더 나은 모듈성과 높은 수준의 코드 재사용을 얻을 수 있습니다.

Bash는 echo와 같은 몇 가지 내장 기능을 제공합니다. 및 read , 하지만 우리는 또한 우리 자신의 기능을 만들 수 있습니다.

Bash에서 함수 만들기

Bash에서 함수를 생성할 수 있는 두 가지 방법이 있습니다.

한 가지 방법은 함수 이름을 사용하는 것입니다(예:

).
functionName(){
  // scope of function
}

컴팩트 버전:

functionName(){ echo "hello"; }

또 다른 방법은 function을 사용하여 함수를 선언하는 것입니다. 키워드:

function functionName {
  // scope of function
}

컴팩트 버전:

function functionName { echo "hello"; }

()가 필요하지 않다는 점에 주목하세요. function를 사용할 때 함수를 생성하는 키워드입니다.

Bash 기능에 대한 중요 사항:

  • 중괄호 사이의 코드 {} 함수 본문 및 범위입니다.
  • 함수를 호출할 때 bash 스크립트의 아무 곳에서나 함수 이름을 사용합니다.
  • 함수를 사용하려면 먼저 정의해야 합니다.
  • 컴팩트 버전을 사용할 때 마지막 명령에는 세미콜론 ;이 있어야 합니다.

예:

다음 코드는 "Hello World"를 콘솔에 출력하는 함수를 만듭니다. 함수의 이름은 printHello입니다. :

#!/bin/bash

printHello(){
    echo "Hello World!"
}

Bash에서 함수 호출

위의 함수를 어떻게 호출합니까? bash 스크립트에서 해야 할 일은 함수 이름을 쓰는 것뿐입니다. 그러면 호출됩니다.

예:

#!/bin/bash

printHello(){
    echo "Hello World!"
}

# Call printHello function from anywhere in the script by writing the name

printHello

출력:

"Hello World"

인수 전달

위의 함수 printHello() 매개변수가 없습니다. 호출할 때마다 "Hello World"가 출력됩니다. 하지만 보다 일반적인 함수를 만들고 싶다면 어떻게 해야 할까요? 예를 들어 인수를 사용하여 함수를 호출하면 우리가 보낸 내용을 인쇄합니다.

두 가지 방법이 있습니다.

먼저 printHello()를 수정할 수 있습니다. 전달된 인수를 인쇄하는 함수:

예:

#!/bin/bash

printAny(){
    echo "Hello " $1
}

printAny World
printAny DevQa
printAny I love coding!

출력:

Hello World
Hello DevQA
Hello I

세 번째 print 문 printAny I love coding!을 주목하세요. "Hello, I"만 출력됩니다.

이는 우리 함수가 $1 매개변수를 하나만 사용하도록 설계되었기 때문입니다. . "나는 코딩을 사랑한다!" 실제로는 3개의 매개변수입니다.

모두 인쇄하려면 텍스트 주위에 따옴표를 넣어야 합니다.

예:

#!/bin/bash

printAny(){
    echo "Hello " $1
}

printAny "I love coding!"

출력:

Hello I love coding

또 다른 예로, 숫자도 전달할 수 있습니다.

#!/bin/bash

add() {
    result=$(($1 + $2))
    echo "Result is: $result"
}

add 1 2

출력:

Result is: 3

반환 값

Bash 함수도 값을 반환할 수 있습니다.

예:

#!/bin/bash

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

add 1 2
echo "The sum is: "$result

출력:

The sum is: 3

함수에서 값을 반환하는 또 다른 방법은 필요할 때 사용할 수 있는 변수에 결과를 할당하는 것입니다.

예:

#!/bin/bash

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

result="$(add 1 2)"
echo "The sum is: "$result

출력:

The sum is: 3