创建函数

前端之家收集整理的这篇文章主要介绍了创建函数前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

创建函数

function name {
commands
}

name() {
commands
}

函数返回值

1 . 默认的退出状态码

函数运行结束时会返回一个退出状态码(函数中最后一条命令返回的退出状态码)。
$? 用该变量查看函数退出状态码。

2 . 使用return命令

return命令允许指定一个整数值来定义函数退出状态码。
注意:退出状态吗必须是0~255,如果return值 > 256,则会产生一个错误值。

3 . 使用函数输出

  1. func abc {
  2. read -p "Enter a value: " value
  3. echo "the input value is :"
  4. echo $value
  5. }
  6.  
  7. result=$(abc)
  8. echo "the new value is $result"

output:

  1. $: ./test.sh
  2.  
  3. Enter a value: 100
  4. the input value is :
  5. 100

函数中使用变量

1 . 向函数传递参数

  1. #!/bin/bash
  2. function addem {
  3. if [ $# -eq 0 ] || [ $# -gt 2 ]
  4. then
  5. echo -1
  6. elif [ $# -eq 1 ]
  7. then
  8. echo $[ $1 + $1 ]
  9. else
  10. echo $[ $1 + $2 ]
  11. fi
  12. }
  13.  
  14. echo -n "Add 10 and 15: "
  15. value=$(addem 10 15)
  16. echo $value
  17.  
  18. echo -n "Let's try adding just one number: "
  19. value=$(addem 10)
  20. echo $value
  21.  
  22. echo -n "Now trying adding no numbers: "
  23. value=$(addem)
  24. echo $value
  25.  
  26. echo -n "Finally,try adding three numbers: "
  27. value=$(addem 10 15 20)
  28. echo $value

由于函数使用特殊参数环境变量作为自己的参数值,因此它无法直接获取脚本在命令行中的参数值。

2 . 在函数中处理变量
一般情况下,如果在脚本的主体部分定义了一个全局变量,那么可以在函数内访问它;如果在函数内定义了一个全局变量,可以在脚本主体部分访问它。

定义局部变量:

local temp
local temp=$[ $value + 5 ]

local关键字保证了变量只局限在该函数中。

数组变量和函数

1 . 向函数传递数组参数

  1. #!/bin/bash
  2. function testit {
  3. local new_array
  4. new_array=`echo $@`
  5. echo "the new array value is ${new_array[*]}";
  6. }
  7.  
  8. myarray=(1 2 3 4 5 6)
  9. echo "the original array is ${myarray[*]}"
  10. testit ${myarray[*]}
  11.  
  12.  
  13. function addarray {
  14. local sum=0
  15. local newarray
  16. newarray=$(echo "$@")
  17. for value in ${newarray[*]}
  18. do
  19. sum=$[ $sum + $value ]
  20. done
  21. echo $sum
  22. }
  23.  
  24. myarray=(1 2 3 4 5)
  25. echo "the original array is: ${myarray[*]}"
  26. arg1=$(echo ${myarray[*]})
  27. result=$(addarray $arg1)
  28. echo "the result is $result"

output:

  1. the original array is 1 2 3 4 5 6
  2. the new array value is : 1 2 3 4 5 6
  3. the original array is: 1 2 3 4 5
  4. the result is 15

2 . 从函数返回数组
函数里向shell脚本传回数组变量的方法函数用echo语句来按正确顺序输出单个数组值,然后脚本再将他们重新放进一个新的数组变量中。

创建库

shell中怎么使用库文件

a). 首先创建一个库文件
b). 在脚本文件中引用库文件,使用库文件中的函数
关键在于:怎么引用库文件

使用函数库的关键在于 source命令:该命令会在当前shell上下文中执行命令,而不是创建一个新shell。

使用 source命令 来在shell脚本中运行库文件脚本,这样就可以使用库中的函数了。

  1. . ./funcLib #source命令的别名:点操作符
  2. . /home/rich/libraries/myfuncs

如何直接在命令行上直接运行函数

方法一:直接在命令行上创建函数, 然后在命令行上调用函数即可。

缺点:退出shell时,函数就消失了。

方法二: 在 .bashrc文件中定义函数函数直接定义在这个文件中,这个文件在每次启动一个新的shell的时候,都会由shell重新载入。

猜你在找的Bash相关文章