如何使用for循环中的值填充数组

Mar*_*rta 4 linux arrays bash shell

我必须提交一个脚本,在for循环中添加两个值,并将每个结果放在一个数组中.我把一个脚本(不起作用)放在一起,但我无法弄清楚如何开始它.

#!/bin/sh

val1=$1
val2=$2
for i in 10
    do
        ${array[i]}='expr $val1+$val2'
        $val1++
    done    
echo ${array[@]}
Run Code Online (Sandbox Code Playgroud)

kon*_*box 5

也许你的意思是这个?

val1=$1
val2=$2
for i in {1..10}; do
    array[i]=$(( val1 + val2 ))
    (( ++val1 ))
done    
echo "${array[@]}"
Run Code Online (Sandbox Code Playgroud)

如果你不支持bash {x..y},请使用以下格式:

for (( i = 1; i <= 10; ++i )); do
Run Code Online (Sandbox Code Playgroud)

也更简单的形式

    array[i]=$(( val1 + val2 ))
    (( ++val1 ))
Run Code Online (Sandbox Code Playgroud)

    (( array[i] = val1 + val2, ++val1 )) ## val1++ + val2 looks dirty
Run Code Online (Sandbox Code Playgroud)