读书人

《Linux命令行与shell脚本编程大全》

发布时间: 2013-09-05 16:02:06 作者: rapoo

《Linux命令行与shell脚本编程大全》 第十六章 学习笔记

第十六章:创建函数

基本的脚本函数

创建函数

1.用function关键字,后面跟函数名

如果两个函数的名称相同,那么后面的将会覆盖前面的,而且不会有提示。

使用函数

使用函数名称即可。必须先定义,再使用。

返回值

bash shell会把函数当做小型脚本,运行结束时会返回一个退出状态码。

有三种方式生成函数退出状态码

默认退出状态码

默认情况下,函数的退出状态码是函数中最后一条命令返回的退出状态码

函数执行结束后,可以使用$?变量来决定函数的退出状态码

使用return命令

bash shell使用return命令退出函数并返回特定的退出状态码。

return命令允许指定一个整数值来定义函数的退出状态码

注意:函数一结束就取返回值,退出状态码必须在0-255之间。

使用函数输出

可以将函数的输出保存到变量中,例如:

result=`f1`

bash shell不会将read读取输入的部分作为 STDOUT

在函数中使用变量

向函数传递参数

在脚本中指定函数时,必须将参数和函数放在同一行

然后函数可以用参数环境变量来获得参数值

在函数中处理变量

函数会用到全局变量和局部变量。

全局变量

在脚本中定义的所有变量均为全局变量。

局部变量

函数内部任何变量都可以声明为局部变量,只需在变量前加local关键字即可。

在脚本中定义的局部变量,函数中是无法访问的。

数组变量和函数

向函数传递数组参数

需要将数组变量的值分解成单个值,然后作为函数参数使用。

在函数内部,可以将他们再组成一个数组。

如果试图将数组当做一个参数传递给函数,那么函数只会读取数组变量的第一个值。

从函数返回数组

同返回普通字符串类似,按顺序echo输出,然后放在圆括号里面即可。

函数递归

还是以最简单的求N的阶乘为例:

创建库

source命令可以在当前的shell上下文中执行命令,而不是创建一个新的shell来执行命令。可以用source命令来在shell脚本中运行库文件脚本。

source命令等同于点操作符(dot operator)

在一个名叫lib_test的文件中定义一个plus函数

在命令行上使用函数

在命令行上创建函数

由于在键入命令时shell就会解释命令,所以可以在命令上直接定义函数。

注意:要在花括号两边加空格,每条命令用分号隔开。

下面的方法看起来更实用一些,效果也更好

在.bashrc文件中定义函数

可以直接在这里定义函数,也可以使用source命令,导入库

注意,修改了.bashrc之后要重启才能生效

如果不是每次开机都要执行,那我们还可以在shell中直接使用source,很多时候,这种方式可能更好一些。

转贴请保留以下链接

本人blog地址

http://su1216.iteye.com/

http://blog.csdn.net/su1216/

读书人网 >编程

热点推荐