配列内のすべての偶数を見つけて変数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

おすすめ記事