배쉬 "for 루프"

배쉬 "for 루프"

내가 그럴 때,

for ((i=0; i<"${ARRAY}"; i+=2))
do
    echo $i
    echo ${ARRAY[$i]}
done

echo $i또한 예상한 대로 echo ${ARRAY[0]}작동 하지만 $i반복자 로서 i빈 줄만 표시됩니다. for 루프를 올바르게 작성하는 방법은 무엇입니까?

답변1

아래 스크립트를 시도해 보세요. 작동해야합니다.

declare -a array=('1' '2' '3' '4' '5' '6' '7' '8' '9' '10' '11')
for ((i=0; i<=${#array[@]}; i+=2 )) ;
  do
     echo "Current Iterator i value:" $i
     echo "Array element at this position:" ${array[$i]}
 done

스크립트 출력

Current Iterator i value: 0
Array element at this position: 1
Current Iterator i value: 2
Array element at this position: 3
Current Iterator i value: 4
Array element at this position: 5
Current Iterator i value: 6
Array element at this position: 7
Current Iterator i value: 8
Array element at this position: 9
Current Iterator i value: 10
Array element at this position: 11

설명하다

나는 처음에 11개의 요소를 포함하는 배열을 선언했습니다.

귀하의 질문에 따르면 배열에서 사용 가능한 모든 요소를 ​​반복하려고 한다고 생각합니다.

${#array[@]}- 배열의 길이를 결정하는데 사용됩니다.

${array[$i]}- 특정 인덱스의 요소를 인쇄하는데 사용됩니다.

관련 정보