linux脚本实现数组值相加

#!/bin/bash

function addarray {

local sum=0 //局部变量只在函数内部有效,函数外部重新有sum的值时,运行脚本时显示函数外部的值

local array

array=($(echo"$@"))

for value in ${array[*]}

do

sum=$[ $sum + $value ]

done

echo $sum

}

myarray=(1,2,3,4,5,6)

echo ''the orginal array is :${myarray[*]}''

args1=$(echo ${myarray[*]})

result=$(addarray $args1) //将函数的输出赋给变量result,然后显示result的值,一种常用技术 ,另外这两行代码可以合并成一行:result=$(addarray ${myarray[*]})

echo ''the sum is :$result''

linux中一些符号标记:$@ //将所有变量都保存为单独的词

$* //将所有参数保存为一个字符串 ,这两个符号都是可以访问所有变量

$# //参数总数

&- //关闭文件

> &2 //重定向到文件描述符,2为文件描述符

&> //将STDERR,STDOUT重定向到同一个文件

$? //确定函数退出状态码

遗留问题,怎样改进将数组的输入变为终端输入值?