使用函数累加数组内数值的和
文件名: test11.sh
#!/bin/bash # adding values in an array function addarray { local sum=0 local newarray newarray=("$@") for value in ${newarray[*]} do sum=$[ $sum+$value ] done echo $sum } myarray=(1 2 3 4 5) echo "The original array is : ${myarray[*]}" argl="${myarray[*]}" result="addarray $argl" echo "The result is $result"
运行后输出的结果为:
The original array is : 1 2 3 4 5 The result is addarray 1 2 3 4 5
并没有得到想要的和,错误还不清楚
错误找到了: result="addarray $argl" 中的 addarray $argl 左右两边的是`符号,就是左上角~的那个键,书上看的以为是单引号,一想怎么可能是单引号,单引号会把里面的字符都看作是字符串,可是用了双引号也是没有结果,后来看到别的书上的脚本,发现引用函数时,外面的符号是`,改了后结果就能长长输出
输出结果:
The original array is : 1 2 3 4 5 The result is 15