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

예제와 함께 Bash/Shell 스크립트에서 함수를 사용하는 방법

이 문서에서는 기능을 사용하는 방법을 설명합니다. Bash 스크립트에서 – 코드를 재사용하고 스크립트를 단순화하는 데 도움이 됩니다.

코드를 한 번 작성하고 재사용할 수 있는데 왜 여러 번 작성합니까?

바로 이것이 기능입니다. 할 수 있습니다.

이 도움말에서는 Bash/Shell 스크립트에서 함수를 사용하는 방법을 설명합니다.

함수란 무엇입니까?

함수 재사용 가능한 코드 조각입니다. 함수는 매개변수를 받아들일 수 있으므로 다른 입력에 대해 동일한 반복 가능한 작업을 수행할 수 있습니다.

함수는 일반적으로 모든 작업을 수행하거나 결과를 출력 또는 인쇄하거나 나중에 사용할 수 있도록 값을 반환합니다.

함수를 사용하는 이유

예를 들어, 어떤 일이 발생했다는 이메일 알림을 보내는 스크립트가 있을 수 있습니다. 여러 수신자에게 서로 다른 여러 이메일을 보내려면 스크립트에 동일한 이메일 전송 코드를 여러 번 작성하여 메시지를 보낼 수 있습니다.

함수를 사용하면 이 코드를 한 번만 작성한 다음 중복 코드가 아닌 한 줄 함수 호출로 다른 수신자, 제목 및 메시지로 호출할 수 있습니다.

배시 함수 구문

Bash/Shell 스크립트에서 함수를 작성하는 구문은 다음과 같습니다.

name_of_function () {
    # COMMANDS
    # Optional return value
}

참고:

  • name_of_function
      을 사용하여 함수를 호출할 수 있는 이름입니다.
    • 영숫자 및 밑줄만 가능!
  • 함수 이름 뒤에는 ()이 와야 합니다. (표준 괄호)
    • 대괄호 주위의 공백에 유의하세요! 필수입니다!
  • 함수를 실행하려는 코드는 {}로 래핑되어야 합니다. (중괄호)
    • 이 중괄호 외부의 코드는 함수의 일부가 아니며 실행되지 않습니다.
  • 명령 일반적으로 Linux 시스템에서 사용할 수 있는 모든 명령이 될 수 있습니다.
  • 선택적으로 반환할 수 있습니다. 값 – 사용법
      에 대한 아래 예를 참조하십시오.
    • 기능을 일찍 종료하려면 return을 호출할 수도 있습니다. 함수를 종료할 값이 없음
    • 특별한 $? 변수는 마지막으로 실행된 명령에서 반환된 값을 보유하므로 함수가 실행된 후 스크립트의 다른 곳에서 사용할 수 있습니다.

예시 및 설명

다음은 모든 다른 Bash 함수 요소를 설명하는 예입니다. 모든 작업을 설명하는 주석이 있습니다.

#!/bin/bash

# Define a global variable - available anywhere in the script as it is not defined inside a function or loop
initial_value=3

# Define a function which does some mathematics
my_math_function () {

    # Get the parameters passed to the function 
    # Parameters are passed after the function name when calling the function, and will be named in order of appearance, starting with $1, then $2, etc
    # Below, these parameter values are assigned to local variables - available only inside the function - so that it's easier to tell what they are
    local multiplier_value=$1
    local addition_value=$2

    # Calculate the result and assign it to a local variable
    # Notice the $(( )) wrapping the calculations - this tells the script to assign the result of these calculations to the results variable, rather than assigning the calculations as a text value
    local result=$(( $initial_value * $multiplier_value + $addition_value ))

    # Print the result to the console
    # Depending on how the function is used, text output from the function can be used to read results from it
    echo $result

    # It is also possible to get output from the function using a return value
    return $result

}

# Call the function with different input parameters
# Parameters are passed to the function by typing them after the function separated by a space
# The function above expects two parameters - a multiplier_value and addition_value

my_math_function 2 4 # Will output 10 (2 * 3 + 4)

my_math_function 3 5 # Will output 14 (3 * 3 + 5)

# The $? is a special variable in Bash scripts which always holds the return value from the last executed command
# It can be used to get the value specified as the return value from the function.

echo $? # Will output 14

# Assign the result of the function to a variable
# This will assign any text outputted by the function (for example using the echo command) to a variable
my_result=$(my_math_function 6 7)
echo $my_result # Will output 25 (6 * 3 + 7)

Linux Shell Scripts의 '#!'는 무엇입니까?

쉘 스크립트에 값을 전달하고 싶으십니까(그러면 이를 함수에 전달할 수 있음)? 이 기사를 확인하십시오.