![Bash - [] 연산자에 대한 숫자가 아닌 인수(배열)](https://linux55.com/image/80612/Bash%20-%20%5B%5D%20%EC%97%B0%EC%82%B0%EC%9E%90%EC%97%90%20%EB%8C%80%ED%95%9C%20%EC%88%AB%EC%9E%90%EA%B0%80%20%EC%95%84%EB%8B%8C%20%EC%9D%B8%EC%88%98(%EB%B0%B0%EC%97%B4).png)
아래에 작은 스크립트가 있지만 for 루프와 if 문을 잘 이해하지 못합니다. 먼저 스크립트를 살펴보겠습니다.
listFieldNumbers ()
{ for ii in ${!field_number[@]};
do
if [ $ii -lt $(( ${#field_number[*]}-1 )) ];
then echo -n "$(( ${field_number[$ii]} + 1 )),";
else echo "$(( ${field_number[$ii]} + 1))";
fi;
done; }
다음 진술이 무엇을 의미하는지 이해하지 못합니다.
field_number[@]
{#field_number[*]}
답변1
field_number
는 배열이고,
${!field_number[@]}
배열의 인덱스 목록을 제공하며
${#field_number[*]}
, 는 배열의 요소 수입니다.
배열에 대한 bash 튜토리얼을 찾아보는 것이 좋습니다. 그들과 함께 일하는 것은 약간 까다롭습니다.
답변2
- field_number 배열의 모든 요소를 참조합니다.
${#field_number[*]}
field_number 요소의 개수 입니다 .
이 튜토리얼을 읽어보세요:http://www.thegeekstuff.com/2010/06/bash-array-tutorial/