sum=0
read n
read -a array
for i in "${array[@]}"
do
sum=$(($sum + $i))
done
echo $sum
我是新手脚本。在这里我想知道我可以使用什么来添加条件,以便读数组将被限制n次。如何从数组中读取前n个元素
例:
3
1 2 3 4
这里应该只添加1 2 3,它不应该采取4.
sum=0
read n
read -a array
for i in "${array[@]}"
do
sum=$(($sum + $i))
done
echo $sum
我是新手脚本。在这里我想知道我可以使用什么来添加条件,以便读数组将被限制n次。如何从数组中读取前n个元素
例:
3
1 2 3 4
这里应该只添加1 2 3,它不应该采取4.
可以避免环路共有并使用参数替换为切片这样的阵列:
$ cat script.bash
sum=0
read -p "Enter n: " n
read -p "Enter space separated array elements: " -a array
echo "${array[@]:0:$n}" | sed 's/\s/+/g' | bc
$ ./script.bash
Enter n: 3
Enter space separated array elements: 1 2 3 4
6
$
echo "${array[@]:0:$n}" | sed 's/\s/+/g' | bc
这个说法动态地+
切片阵列和替代空间\s
形成广告dition表达,其然后用管道输送到bc
(计算器)
总和= 0 读取n J = 0 读-a阵列
for i in "${array[@]}"
do
if [[ $j -ge $n ]];then
break
else
sum=$(($sum + $i))
((j = j + 1))
fi
done
回波$总和
sum=0
i=0
read n
read -a array
while [[ $i -lt $n ]]
do
sum=$(($sum + ${array[$i]}))
let i++
done
echo $sum
我想这和它的工作。在顺便说一句感谢大家
#!/bin/bash
param=$1
sum=0
for i in {0..$param}
do
let " sum = $sum + ${array[$i]} "
done
echo "RESULT: $sum"
和执行
./scipt.sh n
相关问题:http://stackoverflow.com/questions/885620/in-bash-how-can-i-print-the-first- n元素的列表 – m00am