zoukankan      html  css  js  c++  java
  • 函数(数组传参)

     1 [root@localhost array]# cat function_array.sh 
     2 #!/bin/bash
     3 
     4 num=(2 3 4)
     5 array() {
     6     echo "all parameters: $*"
     7     local newarray=(`echo $*`)        #其中的()为另外手动添加,满足数组赋值方式
     8     local i
     9     for ((i=0;i<$#;i++))
    10     do
    11         outarray[$i]=$(( ${newarray[$i]} * 5 ))
    12     done
    13     echo "${outarray[*]}"
    14 }
    15 
    16 array ${num[*]}
    17 [root@localhost array]# sh function_array.sh
    18 all parameters: 2 3 4
    19 10 15 20
    20 [root@localhost array]# 
     1 [root@localhost array]# cat function_array2.sh 
     2 #!/bin/bash
     3 
     4 num=(2 3 4)
     5 array() {
     6     echo "all parameters: $*"
     7     echo
     8     local newarray=(`echo $*`)
     9     local i
    10     for ((i=0;i<$#;i++))
    11     do
    12         outarray[$i]=$(( ${newarray[$i]} * 5 ))
    13     done
    14     echo "${outarray[*]}"
    15 }
    16 
    17 #result=`array ${num[*]}`
    18 #echo ${result[*]}
    19 echo `array ${num[*]}`
    20 [root@localhost array]# sh function_array2.sh
    21 all parameters: 2 3 4 10 15 20            #输出格式不同,是由于``是在子shell中执行,然后将结果再输出导致。
    22 [root@localhost array]# 

    第二版:

     1 [root@localhost array]# cat function_array.sh
     2 #!/bin/bash
     3 
     4 num=(2 3 4)
     5 num2=(5 4 3)
     6 array() {
     7     echo "all parameters: $*"
     8     local newarray=(`echo $*`)
     9     local i
    10     for ((i=0;i<$#;i++))
    11     do
    12         outarray[$i]=$(( ${newarray[$i]} * 5 ))
    13     done
    14     echo "${outarray[*]}"
    15 }
    16 
    17 array ${num[*]}
    18 array ${num2[*]}
    19 [root@localhost array]# sh function_array.sh
    20 all parameters: 2 3 4
    21 10 15 20
    22 all parameters: 5 4 3
    23 25 20 15
    24 [root@localhost array]# 

    第三版:

     1 [root@localhost array]# cat function_array.sh
     2 #!/bin/bash
     3 
     4 num=(2 3 4)
     5 num2=(5 4 3)
     6 array() {
     7     echo "all parameters: $*"
     8     local newarray=(`echo $*`)
     9     local i
    10     for ((i=0;i<$#;i++))
    11     do
    12         newarray[$i]=$(( ${newarray[$i]} * 5 ))    #运算后将新值重新赋给原有变量,覆盖原有变量值,无需重新定义新数组(思想)
    13     done
    14     echo "${newarray[*]}"
    15 }
    16 
    17 array ${num[*]}
    18 array ${num2[*]}
    19 [root@localhost array]# sh function_array.sh
    20 all parameters: 2 3 4
    21 10 15 20
    22 all parameters: 5 4 3
    23 25 20 15

    数组赋值给函数array,在函数中定义新的数组,并将数组的运算结果赋值给令一个数组,通过函数将数组的值给输出。

  • 相关阅读:
    高德地图在h5项目中的集成(点标记)
    angular中点击页面任意地方让显示的元素消失
    关于echars中雷达图的一些配置
    部署项目到阿里云服务器上遇到的问题
    sql语句的简单记录
    C#中的数据类型
    原型和继承
    Git 命令行使用
    以前一直设置水平居中,现在我们来讨论一下图片居中的四种小技巧
    让盒子两端对齐小技巧 => inline-block
  • 原文地址:https://www.cnblogs.com/xiaofeng666/p/12790347.html
Copyright © 2011-2022 走看看