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重定向到同一个文件
$? //确定函数退出状态码
遗留问题,怎样改进将数组的输入变为终端输入值?