codememo

Bash 스크립트에 전달된 인수 수를 확인하려면 어떻게 해야 합니까?

tipmemo 2023. 5. 23. 21:55
반응형

Bash 스크립트에 전달된 인수 수를 확인하려면 어떻게 해야 합니까?

Bash 스크립트에 전달된 인수 수를 확인하려면 어떻게 해야 합니까?

제가 현재 가지고 있는 것은 다음과 같습니다.

#!/bin/bash
i=0
for var in "$@"
do
  i=i+1
done

이것을 하는 다른 (더 나은) 방법이 있습니까?

인수의 수는 다음과 같습니다.$#

자세한 내용은 이 페이지에서 검색하십시오.

#!/bin/bash
echo "The number of arguments is: $#"
a=${@}
echo "The total length of all arguments is: ${#a}: "
count=0
for var in "$@"
do
    echo "The length of argument '$var' is: ${#var}"
    (( count++ ))
    (( accum += ${#var} ))
done
echo "The counted number of arguments is: $count"
echo "The accumulated length of all arguments is: $accum"

원래 참조를 추가하려면:

특수 매개 변수에서 인수 수를 가져올 수 있습니다.$#값이 0이면 "인수 없음"을 의미합니다. $#읽기 전용입니다.

와 함께 사용할 경우shift인수 처리의 경우 특수 매개 변수$#Bash가 기본 제공될 때마다 감소합니다.shift실행됩니다.

섹션 3.4.2 특수 매개 변수의 Bash 참조 설명서를 참조하십시오.

  • "셸은 몇 가지 매개 변수를 특별히 처리합니다.매개 변수는 참조할 수만 있습니다."

  • $# 키워드에 대한 이 섹션에서는 "위치 매개 변수의 수(십진수)로 확장합니다."

다음은 쉬운 것입니다.

고양이 수 변수

echo "$@" | awk '{print NF}'

출력:

#./countvariable.sh 1 2 3 4 5 6
6
#./countvariable.sh 1 2 3 4 5 6 apple orange
8

언급URL : https://stackoverflow.com/questions/4423306/how-do-i-find-the-number-of-arguments-passed-to-a-bash-script

반응형