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 환경에서만 작동합니다.