当前位置:   article > 正文

Shell脚本(四)

Shell脚本(四)

一、函数

1、函数的定义

方式一:

function  name {

    commands

}

name:为函数的唯一函数名,不要与特殊含义的命令名重复

commands:构成函数的bash shell命令,依次执行

方式二:

name() {

   commands

}

二、调用函数

函数的调用只需要指定函数名即可。每次执行函数时bash shell会找到函数的定义执行,函数的定义必须在使用前,否则会报错

1、返回值

通常情况下,函数的退出状态码为函数的最后一条命令返回的退出状态码,函数结束后可用$?查看,状态码为1,表示最后一条命令失败,为0表示成功

2、return

return:用于返回退出状态码

3、函数中的变量

全局变量:全局有效,可能会受到影响.

局部变量 :在变量声明前加上local关键字,仅在函数内部有效

4、传参

传递数组参数:不能直接将数组作为参数,否则仅传递数组中的第一个参数,需将数组拆分传递使用$(echo ${myarray[*]})

返回数组:使用echo依次输出单个值,后重新放入一个新的数组

  1. #!/bin/bash
  2. # returning an array value
  3. function arraydblr {
  4. local origarray
  5. local newarray
  6. local elements
  7. local i
  8. origarray=($(echo "$@"))
  9. newarray=($(echo "$@"))
  10. elements=$[ $# - 1 ]
  11. for (( i = 0; i <= $elements; i++ ))
  12. {
  13. newarray[$i]=$[ ${origarray[$i]} * 2 ]
  14. }
  15. echo ${newarray[*]}
  16. }
  17. myarray=(1 2 3 4 5)
  18. echo "The original array is: ${myarray[*]}"
  19. arg1=$(echo ${myarray[*]})
  20. result=($(arraydblr $arg1))
  21. echo "The new array is: ${result[*]}"
  22. $
  23. $ ./test12
  24. The original array is: 1 2 3 4 5
  25. The new array is: 2 4 6 8 10

三、函数库

由于bash是在一个子进程中运行,使用函数库需要使用source命令连接上下文,

创建一个myfuncs的函数库,使用路径调用

  1. #!/bin/bash
  2. # using functions defined in a library file
  3. . ./myfuncs
  4. value1=10
  5. value2=5
  6. result1=$(addem $value1 $value2)
  7. result2=$(multem $value1 $value2)
  8. result3=$(divem $value1 $value2)
  9. echo "The result of adding them is: $result1"
  10. echo "The result of multiplying them is: $result2"
  11. echo "The result of dividing them is: $result3"
  12. $
  13. $ ./test14
  14. The result of adding them is: 15
  15. The result of multiplying them is: 50
  16. The result of dividing them is: 2

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/618493
推荐阅读
相关标签
  

闽ICP备14008679号