bash shell函数的定义及变量的简单说明
函数:
“函数是一种脚本内脚本”,程序员很难想像没有函数的日子,至少我会比较痛恨。
所以了解函数的定义也就是学习bash的一大要点了。
函数大大增强了shell的编程能力,主要原因有如下两点:
- 当你调用一个函数时,它已经在shell的内存中;因此函数运行的很快。
- 将较长的shell脚本组织成各种容易开发和维护的模块是理想的。
呃,针对第一点,现在计算机的内存那是相当的便宜,大家不用再担心钱了吧?
来个4G的条子,当然用XP你就用3.5G吧,除非你扩展一下。。
定义一个函数,就是令shell在内存中保存其名字和定义(也就是其包含的shell命令)。如果你要在以后运行函数,只须鍵入其名字,后跟任意参数即可,就好像它是一个shell脚本
要定义一个函数有两种格式
{
shell commands
}
和
{
shell commands
}
这俩方法,其实是一样的,没啥本质及功能上的区别。
使用unset -f functname删除一个函数定义。
可以使用如下命令来查找到登录会话里定义的函数
嘿嘿,咋样?是不是显示的内容太长?嗯。用管道命令more来输出吧
如果只想看函数名的话就用
除了优势,函数和脚本有两个重要差别
- 当通过名字调用时,函数不在单独进程里运行,而脚本却可以。运行一个函数的语义更类似于登录时.bash_profile中的命令或用source命令调用脚本时的情况。
- 如果一个函数与一个脚本或可执行程序(也有可能是脚本啊)有相同的名字,则函数优先。
看出来了吧?“函数优先”,为啥呢?这里说一下在shell中鍵入一个命令时,各种资源的优先级次序:
- 别名
- 关鍵字,例如function,以及if和for等
- 函数
- 内置命令,如cd和type等
- 脚本和可执行程序(在最后哦),shell按在PATH环境变量中列出的目录中对其进行搜索
不过,呃,这个顺序是可以改变的哈。可以使用内置的command builtin和enable改变优先级次序。
它允许你将函数、别名和脚本文件定义为同样的名字,并选择要执行的一个。
变量:
呼,终于说到变量了。。嗯。没事这个短。。
简单地说:变量被命名用以存储数据,通常格式为字符串,其值可使用$符号加名字获得。某些变量称为环境变量,按惯例以大写字母命名,其取值对子进行已知(使用export语句)
呵,就这些。嘿嘿。。因为后面的内容不能放在这一节里了。太长了,呼呼。。
文章作者:simaopig
本文地址:http://www.xiaoxiaozi.com/2009/05/10/394/
版权所有 © 转载时必须以链接形式注明作者和原始出处!
继续来这里做个沙发,想做个友情连接可以吗
[回复]
@boxsea
呵。当然可以啊。。我先加上你的。
[回复]
我的也做好了,欢迎常来
[回复]
@boxsea
呵。一定常去打扰。呵。
[回复]
写一些编码问题更好~这些大家没心思~学的人都在看砖头~
[回复]
@Brhum
呃,我才看到你的留言。SORRY,SORRY。
我也不知道该写啥。嗯。想想,想想。。
[回复]