Shell中函数的定义和使用

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

函数的定义

在Shell中可以通过下面的两种语法来定义函数,分别如下:

  1. function_name ()
  2. {
  3. statement1
  4. statement2
  5. ....
  6. statementn
  7. }

或者

  1. function function_name()
  2. {
  3. statement1
  4. statement2
  5. ....
  6. statementn
  7. }

函数调用

当某个函数定义好了以后,用户就可以通过函数名来调用函数了。在Shell中,函数调用的基本语法如下,

  1. function_name parm1 parm2

下面定义了一个 sayhell()的方法,并调用

  1. #! /bin/bash
  2. function sayhello()
  3. {
  4. echo "Hello,World"
  5. }
  6. sayhello

代码调用结果

  1. [root@VM_156_149_centos shell]# sh hello.sh
  2. Hello,World

函数的返回值

首先,用户利用return来返回某个数值,这个与绝大部分的程序设计语言是相同的。但是在Shell中,return语句只能返回某个0-255之间的整数值。在Shell中还有一种更优雅的方法帮助用户来获得函数执行后的某个结果,那就是使用echo。在函数中,用户需要将要返回的数据写入到标准输出(stout),通常这个操作是使用echo语句来完成的,然后在调用程序中将函数的执行结果赋值给一个变量。这种做法实际上就是一个命令替换的一个变种。

函数使用return返回值

函数的定义@H_301_40@
  1. #! /bin/bash
  2.  
  3. function sum()
  4. {
  5. returnValue=$(( $1 + $2 ))
  6. return $returnValue
  7. }
  8.  
  9. sum 22 4
  10.  
  11. echo $?

函数调用@H_301_40@
  1. [root@VM_156_149_centos shell]# sh sum.sh
  2. 26

函数返回值大于0-255,出错的情况@H_301_40@

在上面的执行结果可以看到,所传递的两个数的和被成功的返回。但是通过return只能返回整数值,并且是0-255的范围,如果超出这个范围就会错误的结果。例如将上面的代码换成下面的参数

  1. sum 253 4

则执行结果如下,

  1. [root@VM_156_149_centos shell]# sh sum.sh
  2. 1

可以发现,正确的结果应该是257,但是函数的返回值是1.

函数使用echo返回值

函数的定义@H_301_40@
  1. #! /bin/bash
  2.  
  3. function length()
  4. {
  5. str=$1
  6. result=0
  7. if [ "$str" != "" ] ; then
  8. result=${#str}
  9. fi
  10. echo "$result"
  11. }
  12.  
  13. len=$(length "abc123")
  14.  
  15. echo "The string's length is $len "

函数调用@H_301_40@
  1. [root@VM_156_149_centos shell]# sh length.sh
  2. The string's length is 6

猜你在找的Bash相关文章