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重定向到同一个文件

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

 

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

posted @ 2018-07-13 11:37  pei-金秋十月  阅读(2007)  评论(0编辑  收藏  举报