我必须提交一个脚本,它在for循环中添加两个值,并将每个结果放在一个数组中。我把一个脚本(不起作用)放在一起,但我无法弄清楚如何开始它。
#!/bin/sh
val1=$1
val2=$2
for i in 10
do
${array[i]}='expr $val1+$val2'
$val1++
done
echo ${array[@]}
答案 0 :(得分:5)
也许你的意思是这个?
val1=$1
val2=$2
for i in {1..10}; do
array[i]=$(( val1 + val2 ))
(( ++val1 ))
done
echo "${array[@]}"
如果您的bash不支持{x..y}
,请使用以下格式:
for (( i = 1; i <= 10; ++i )); do
的形式也比较简单
array[i]=$(( val1 + val2 ))
(( ++val1 ))
是
(( array[i] = val1 + val2, ++val1 )) ## val1++ + val2 looks dirty
答案 1 :(得分:2)
konsolebox's answer是对的,但这里有一些选择:
val1=$1
val2=$2
for i in {0..9}; do
(( array[i]=val1 + val2 + i ))
done
echo "${array[@]}"
val1=$1
val2=$2
for (( i=val1 + val2; i < val1 + val2 + 10; i++ )); do
array+=("$i")
done
echo "${array[@]}"