배열의 모든 짝수를 찾아 변수 A를 추가한 다음 인쇄하려고 하는데 문제가 있습니다.

배열의 모든 짝수를 찾아 변수 A를 추가한 다음 인쇄하려고 하는데 문제가 있습니다.
#!/bin/bash
declare -i A=2
ADD()
{
    declare -a Arr
    count=1
    MAXCOUNT=4
    #declare -a arr
    while [ "$count" -le "$MAXCOUNT" ]; do
            Arr[$count]=$(( RANDOM % 10 + 1 ))
        (( count++ )) || true
    done
    for i in "${Arr[@]}"; do
        if [ $((Arr[i]%2)) -eq 0 ]; then
            A+=$(Arr[i])
    fi
    done
echo "$A"
}
ADD
./math1804262.sh: line 35: Arr[*]: command not found
./math1804262.sh: line 35: Arr[*]: command not found
no
./math1804262.sh: line 35: Arr[*]: command not found

답변1

코드 1:

#!/bin/bash
declare -i A=2
ADD()
{
     start_value=$1
     end_value=$2
     dynamic_array=()

     for (( i=$start_value ; i<=$end_value ; i++ ))
     {
         rem=$(( $i % 2 )) 
         if [ $rem -eq 0 ]
         then
             #echo "Number : $i print's even number"
             dynamic_array+=("$i") 
         else
            # echo "Not a even number : $i"
        fi

     }

     # Printing all even numbers
     echo ${dynamic_array[@]}

}

ADD 1 7

출력 1: 2 4 6

코드 2는 A를 대안으로 인쇄합니다. 동적 배열 저장에서 약간의 변경이 이루어졌습니다.

코드 2:

#!/bin/bash
declare -i A=2
ADD()
{
     start_value=$1
     end_value=$2
     dynamic_array=()

 for (( i=$start_value ; i<=$end_value ; i++ ))
 {
     rem=$(( $i % 2 )) 
     if [ $rem -eq 0 ]
     then
         #echo "Number : $i print's even number"
         dynamic_array+=("$i A") 
     else
         echo "Not a even number : $i"
    fi

 }

 # Printing all even numbers
 echo ${dynamic_array[@]}

}

1 7을 추가하세요

출력 2:

2 A 4 A 6 A

관련 정보