Shell程序中的函数
函数又叫做子程序,可以在程序中的任何地方被调用,其格式如下:
函数名字()
{
command
... ...
command;
}
Shell程序的任何地方都可以用命令 "函数名字" 调用,使用函数的好处有两点,一点是使用函数可以把一个复杂的程序化为多个模块,易于管理,符合结构化程序的设计思想,另一个好处是代码的重用。
Shell函数和Shel程序比较相似,它们的区别在于Shell程序在子Shell中运行,而Shell函数在当前Shell中运行。因此,在当前Shell中可以看到Shell函数对变量的修改。在任何Shell中都可以定义函数,包括交互式Shell。
例如:
$dir() {ls -l;}
结果是我们在$后面打dir,其显示结果同ls -l的作用是相同的。该dir函数将一直保留到用户从系统退出,或执行了如下所示的unset命令:
$unset dir
下面的例子说明了函数还可以接受位置参数:
$dir(){_
>echo "permission ln owner group file sz last access
>ls -l $*;
>}
运行 dir a* 看产生什么结果
参数a*传递到dir函数中并且代替了$*
通常Shell程序将在子Shell中执行,该程序对变量的改变只在子Shell中有效而在当前Shell中无效。"."命令可以使Shell程序在当前Shell中执行。用户可以在当前Shell中定义函数和对变量赋值。通常用下面命令来重新初使化.profile对Shell环境的设置。
$ . .profile
由于看到这部分相对简单,我们还是顺便说说trap好了
使用trap命令进行例外处理
用户编写程序在程序运行时可能会发生一些例外情况,比如执行该程序的用户按中断键或使用kill命令,或者控制终端突然与系统断开等。unix系统中的上述情况会使系统向进程发一个信号,通常情况下该信号使进程终止运行。有时侯用户希望进程在接到终止信号时进行一些特殊的操作。若进程在运行时产生一些临时文件,又因接受到的信号而终止。那么该进程产生的临时文件将保留下来。在bsh中,用户可以使用trap命令修改进程接收到终止信号时进行的默认操作。
trap命令格式如下:
trap command_string signals
收藏 http://www.qqread.com/linux/h051245206.html进入讨论组讨论。相关专题
- 美国Unix厂商SCO正式被纳斯达克摘牌 (15次浏览)
- 基于UNIX文化 自由软件用户9个共同特点 (0次浏览)
- IBM和Sun起争议 坚持不同的“开源”观点 (0次浏览)



