반응형
Bash 스크립트에 전달 된 인수 수를 어떻게 찾습니까?
Bash 스크립트에 전달 된 인수 수를 어떻게 찾습니까?
이것이 내가 현재 가지고있는 것입니다 :
#!/bin/bash
i=0
for var in "$@"
do
i=i+1
done
이 작업을 수행하는 다른 (더 나은) 방법이 있습니까?
인수의 수는 $#
자세한 내용은이 페이지에서 검색하십시오. http://tldp.org/LDP/abs/html/internalvariables.html#ARGLIST
#!/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 Builtin shift
이 실행될 때마다 특수 매개 변수 가 감소합니다 .
섹션 3.4.2 특수 매개 변수의 Bash Reference Manual 을 참조 하십시오 .
"쉘은 여러 매개 변수를 특별히 취급합니다.이 매개 변수 는 "
키워드 $ #에 대한이 섹션에서 "10 진수의 위치 매개 변수 수로 확장됩니다."
아래는 쉬운 것입니다-
고양이 countvariable.sh
echo "$@" |awk '{for(i=0;i<=NF;i++); print i-1 }'
출력 :
#./countvariable.sh 1 2 3 4 5 6
6
#./countvariable.sh 1 2 3 4 5 6 apple orange
8
그 값은 변수에 포함되어 있습니다 $#
반응형
'IT' 카테고리의 다른 글
테이블 행에 여백을 추가하는 방법 (0) | 2020.05.31 |
---|---|
부트 스트랩이있는 고정 너비 버튼 (0) | 2020.05.31 |
리눅스에서 버퍼와 캐시 메모리의 차이점은 무엇입니까? (0) | 2020.05.29 |
더 우아한“ps aux | (0) | 2020.05.29 |
Java String-문자열에 문자가 아닌 숫자 만 포함되어 있는지 확인 (0) | 2020.05.29 |