Bash에 입력 인수가 있는지 확인

Olorunfemi Akinlua 2023년6월20일
  1. $#를 사용하여 Bash에 입력 인수가 있는지 확인
  2. $1을 사용하여 Bash에 입력 인수가 있는지 확인
Bash에 입력 인수가 있는지 확인

Bash 스크립트를 만들 때 성공적으로 실행하기 위해 스크립트 내에서 사용할 인수를 원할 수 있습니다. 따라서 사용자가 스크립트와 함께 사용하는 입력 인수의 개수를 확인하는 스크립트를 생성해야 합니다.

이 모든 것은 사용자가 스크립트나 명령을 사용할 때 필요한 인수를 전달하지 않을 때 예기치 않은 동작을 방지하고 사용자에게 필요한 수의 인수를 사용하지 않았음을 알리는 오류 메시지를 전달할 수 있습니다.

이 기사에서는 입력 인수가 존재하는지 또는 기존 인수의 수를 확인하는 방법을 보여줍니다.

$#를 사용하여 Bash에 입력 인수가 있는지 확인

Bash 내에서 특수 변수 $#는 입력 인수를 보유합니다. $#를 사용하여 Bash 스크립트에 전달된 입력 인수 수를 확인할 수 있습니다.

간단한 Bash 스크립트는 이 $# 변수가 인수 없이 전달될 때 또는 두 개의 인수로 전달될 때 보유하는 내용을 보여줍니다.

#!/bin/bash

echo "The number of input arguments passed to this script: "
echo $#

입력 인수 없이 스크립트를 실행해 보겠습니다.

$ ./script.sh

터미널 출력은 다음과 같습니다.

The number of input arguments passed to this script:
0

이제 동일한 스크립트에 두 개의 인수를 전달해 보겠습니다.

$ ./script.sh one two

스크립트의 출력은 아래와 같습니다.

The number of input arguments passed to this script:
2

이제 $#$#가 0(입력 인수 없음을 의미)인지 여부를 확인하는 조건문을 사용하여 true일 때 종료할 수 있습니다. $#가 0보다 크면 조건은 false가 되고 조건문의 else 부분이 실행됩니다.

#!/bin/bash

if [ $# -eq 0 ]
  then
    echo "No input arguments exist"
    exit 1
else
    echo "The number of input arguments passed:"
    echo $#
fi

인수 없이 아래 명령을 사용하여 스크립트를 실행해 보겠습니다.

$ ./script.sh

코드 출력:

No input arguments exist

이제 인수를 사용하여 다른 스크립트 명령을 실행해 보겠습니다.

$ ./script.sh one two

조건 검사가 false와 같기 때문에 코드의 출력이 다릅니다.

The number of input arguments passed:
2

그 외에도 $[숫자]를 사용하여 입력 인수에 액세스하는 또 다른 특수 변수를 사용할 수 있습니다. Bash 내에서 사용할 수 있는 위치 매개변수입니다.

세 개의 변수를 얻을 것이라는 것을 알고 있거나 확인했다면 아래 코드를 사용하여 세 개의 변수에 액세스할 수 있습니다.

#!/bin/bash

echo "The input arguments are:"
echo $1 $2 $3

세 개의 인수와 함께 전달될 때 코드의 출력은 다음과 같습니다.

The input arguments are:
one two three

$1을 사용하여 Bash에 입력 인수가 있는지 확인

이전 섹션에서 논의한 위치 매개변수를 기억하십시오. 첫 번째 $1을 사용하여 입력 인수가 없으면 위치 매개변수 $1에 값이 있을 수 없기 때문에 입력 인수가 전달되었는지 확인할 수 있습니다.

따라서 조건식이 위치 매개변수 $1 내에 값이 있는지 확인하는 if-else 문을 사용할 수 있습니다. 그러나 값이 있으면 위치 매개변수를 사용하여 입력 인수의 수와 첫 번째 인수를 에코합니다.

#!/bin/bash

if [ -z "$1" ]
  then
    echo "Please, pass an argument"
    exit 1
else
    echo "The number of input arguments are"
    echo $#
    echo "The first one is"
    echo $1
fi

인수 없이 코드를 실행해 보겠습니다.

$ ./script.sh

스크립트의 출력:

Please, pass an argument

이제 몇 가지 인수를 사용하여 실행해 보겠습니다.

$ ./script.sh delft stack blog

코드 출력:

The number of input arguments are
3
The first one is
delft
Olorunfemi Akinlua avatar Olorunfemi Akinlua avatar

Olorunfemi is a lover of technology and computers. In addition, I write technology and coding content for developers and hobbyists. When not working, I learn to design, among other things.

LinkedIn

관련 문장 - Bash Input