HOWTO · Bash

Bash에서 선택적 입력 인수 가져오기

이 자습서에서는 선택적 입력 인수를 사용하도록 Bash 스크립트를 만드는 방법에 대해 설명합니다.

이 페이지의 내용

때로는 인수를 전달하거나 인수를 전달하지 않고 둘 다에서 실행할 수 있는 동적 함수를 만들어야 합니다. 이렇게 하려면 함수를 호출할 때 인수가 전달되지 않으면 기본 인수를 사용할 수 있도록 이러한 인수에 대한 일부 기본값을 설정해야 합니다.

이 문서에서는 함수에 대한 선택적 입력 인수를 만드는 방법을 보여줍니다. 또한 주제를 더 쉽게 만들기 위해 몇 가지 예와 설명을 살펴보겠습니다.

Bash에서 선택적 입력 인수 가져오기

아래 예에서는 기본값을 인쇄합니다. 기본값을 포함하는 4개의 변수를 선언했습니다.

예제의 코드는 다음과 같습니다.

VAR1=${1:-foo}
VAR2=${2:-bar}
VAR3=${3:-1}
VAR4=${4:-$(date)}

echo "$VAR1"
echo "$VAR2"
echo "$VAR3"
echo "$VAR4"

코드 실행 후 아래와 같은 결과를 얻습니다.

foo
bar
1
Sat Aug 13 14:59:31 +06 2022

이제 고급 예제를 살펴보겠습니다. 아래 공유된 예에서 우리는 0, 1, 2 매개변수로 작동하고 함수 내부에 기본값을 설정할 수 있는 함수를 만들었습니다.

이제 예제의 코드는 다음과 같습니다.

FindSum()
{
    VAR1=${1:-40}
    VAR2=${2:-50}

    if [ $# -lt 1 ];
    then
        echo "The provided parameters are: $VAR1, $VAR2."
    elif [ $# -lt 2 ];
    then
        echo
        echo "The provided parameters is: $VAR2."
    else
        echo
        echo "No parameters provided"
        VAR1=$1
        VAR2=$2
    fi
    SUM=$((VAR1+VAR2))
    echo "The sum of $VAR1 and $VAR2 is $SUM"
}

FindSum
FindSum 40
FindSum 70 30

코드를 부분별로 설명하겠습니다.

먼저 VAR1=${1:-40}VAR2=${2:-50} 행을 사용하여 변수의 기본값을 설정합니다. 그런 다음 이러한 변수에 대한 값이 주어졌는지 여부를 확인했습니다.

값이 제공하지 않으면 기본값을 사용해야 합니다. 그렇지 않으면 사용자가 지정한 값을 사용합니다.

마지막으로 SUM=$((VAR1+VAR2)) 줄을 사용하여 합계 연산을 수행하고 결과를 인쇄했습니다. 여기에서는 FindSum을 통해 인수 없이 함수를 호출했습니다.

다시 한 번 FindSum 40 줄을 사용하여 하나의 인수로 함수를 호출했습니다. 그리고 FindSum 70 30 줄을 사용하여 두 개의 인수가 있는 함수를 호출했습니다.

The provided parameters are: 40, 50.
The sum of 40 and 50 is 90

The provided parameters is: 50.
The sum of 40 and 50 is 90

No parameters provided
The sum of 70 and 30 is 100

이 기사에서 사용된 모든 코드는 Bash로 작성되었습니다. Linux Shell 환경에서만 작동합니다.