一、在脚本中定义函数

与变量一样,在使用函数之前应该对函数进行定义。与其他编程类语言相比,由于没有数据类型的概念,因此也不必定义函数的类型。

(1)在脚本中可以使用以下方式定义函数:

function_name()

语句1
语句2
...

(2)有时为了便于阅读,也可以使用以下方式定义函数:

function function_name()

语句1
语句2
...

在上面这种方式中,使用了关键字function定义函数。这种方式有助于提高代码的可读性,因此建议使用这种方式定义函数。

【函数的命名约定】

  • 为了区别变量,建议所有函数名都有小写字母和下划线组成,并以字母开头。
  • 不要使用命令作为函数名称。
  • 不要在函数名中使用特殊字符。
  • 函数名应该尽量体现其功能。

除此之外,尽量不要在函数名中使用数字、有特殊意义的字符(例如true、false、return)、标点符号等。

二、在脚本中使用函数

在脚本中定义了函数后,下一步就是在脚本中调用函数执行特定的功能,可以在脚本中使用函数名直接调用函数。

函数定义和调用的简单示例:

[root@localhost shell]# cat func_exam.sh
#!/bin/bash #This is a example script.
#2013/12/17 hello()
{
echo "Now is the function hello."
echo "Hello!"
} function hi()
{
echo "Now si the function hi."
echo "Hi!"
} echo "Now call the function hello."
hello
echo "Now call the function hi."
hi
[root@localhost shell]# ./func_exam.sh
Now call the function hello.
Now is the function hello.
Hello!
Now call the function hi.
Now si the function hi.
Hi!

三、向函数传递参数和返回值

(1)在函数中获取传递的参数时,可以像脚本获取参数那样,使用位置变量$1、$2、$3等。

示例:

[root@localhost shell]# cat func_get_param.sh
#!/bin/bash #This is a example script.
#2013/12/17 function A()
{
echo `expr $1 + $2`
} D=`A 100 300` echo "D="$D
[root@localhost shell]# ./func_get_param.sh
D=400

(2)返回多个值的示例:

[root@localhost shell]# cat func_get_param.sh
#!/bin/bash #This is a example script.
#2013/12/17 function A()
{
sum=`expr $1 + $2`
sub=`expr $1 - $2`
} A 300 100 echo "sum="$sum
echo "sub="$sub
[root@localhost shell]# ./func_get_param.sh
sum=400
sub=200

上面的示例中,函数的返回值是通过变量来完成的,这种方式是借助变量的作用域在脚本中的全局性。

(3)使用预定义变量$?捕获函数是否成功执行:

[root@localhost shell]# cat func_ok.sh
#!/bin/bash #This is a example script.
#2013/12/17 function A()
{
echo `expr $1 + $2`
} D=`A 100 300` if [ $? = 0 ]
then
echo "Function succeeds!"
echo "D="$D
else
echo "Function fails."
fi
[root@localhost shell]# ./func_ok.sh
Function succeeds!
D=400

(4)使用if语句判断函数执行结果时,也可简写为:

if D=`A 100 300`
then
......

四、返回函数执行状态

在脚本中调用了函数之后,函数会执行函数结构体中的语句,完成后系统会根据函数中的最后一个语句的执行状态,自动返回函数的执行状态信息。但有时函数中的关键语句不是最后一句,这时就需要手动返回函数的执行状态。

要手动返回函数的执行状态,可以在函数最后使用return语句。return的使用方法和取值如下:

return:将函数最后一条命令的执行状态作为其状态信息返回。

return 0:返回函数成功执行信息。

return 1:返回函数错误的信息。

使用以上命令设置函数返回状态时,当脚本执行到return语句时,无论还有多少语句没有执行,脚本都会立即设置函数执行状态并返回。

最新文章

  1. Xming + PuTTY 在Windows下远程Linux主机使用图形界面的程序
  2. Linux学习笔记(14)-进程通信|共享内存
  3. display:table-cell
  4. mciSendString 的两个小坑
  5. Mysql学习笔记(六)增删改查
  6. C#虚方法认识
  7. DML 数据操纵语言
  8. 使用3D物体做GUI界面
  9. IE8一枝独秀的JS兼容BUG
  10. SSS小记
  11. 武汉科技大学ACM :1002: A+B for Input-Output Practice (II)
  12. 使用WCF订阅替换轮训
  13. 基于iframe的移动端嵌套
  14. 在Bootstrap开发框架中使用bootstrapTable表格插件和jstree树形列表插件时候,对树列表条件和查询条件的处理
  15. MySQL 约束、表连接、表关联、索引
  16. python 的基础 学习 11天 作业题
  17. Java执行JavaScript代码
  18. 利用history.pushState()实现页面无刷新更新
  19. ubuntu14.04 放开串口权限
  20. VC++ 多线程编程,win32,MFC 例子(转)

热门文章

  1. 25个完美的Opencart模板,让顾客无法抗拒!
  2. ado无法访问数据库问题
  3. Android将ScrollView移动到最底部
  4. [翻译]创建ASP.NET WebApi RESTful 服务(7)
  5. SCU 4440 分类: ACM 2015-06-20 23:58 16人阅读 评论(0) 收藏
  6. shell's glob
  7. TQImport3XLS.Map
  8. css3妙用 刷新图标
  9. 【半原创】将js和css文件装入localStorage加速程序执行
  10. Lotus 迁移到Exchange POC 之 新建2007 服务器!