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