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 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