SHELL编程-函数

北冥有鱼的Blog 2012-10-07

1. 函数定义

shell允许将一组命令集或语句形成一个可用块,这些块称为shell函数

定义函数的格式:

function-name(){

command1

........

}

或functionfunction-name(){#函数名前面多了个function关键字

command1

........

    }

2.函数调用

以下是一个函数的脚本实例:

#!/bin/bash

#hello

functionhello(){#声明函数

echo"Hello!"#函数的主体,输出"Hello!"

}#函数结束

    hello             #调用函数

3.参数传递

向函数传递参数就像在脚本是使用变量位置$1,$2,$3...$9

以下是一个传递参数的实例:

#!/bin/bash

#hellofun

functionhello(){

echo"Hello!Thefirstparameteris'$1'."

}

hellogood

  #该脚本执行的结果是: Hello! The first parameter is 'good'.

4.函数文件

保存函数的文件,用以上的例子写成一个函数文件如下:

#!/bin/bash

#hellofunction

functionhello(){

echo"Hello!"

return1

}

上面的hellofunction文件就是一个函数文件,可通过另一个脚本来调用

#!/bin/bash

#hellof

.hellofunction#注意点和hellofunction之间有个空格

  hello

5.载入和删除

用set查看已载入的函数

用unsetfunction-name取消载入

举例如下:

#!/bin/bash

#hellof

.hellofunction

unset

  hello   #因为已经取消载入。。所以会出错

 

6.从调用函数中返回

当函数完成处理或希望函数基于某一测试语句返回时,可做两种处理:

1) 让函数正常执行到函数末尾,然后返回脚本中调用函数的控制部分。

2) 使用r e t u r n返回脚本中函数调用的下一条语句,可以带返回值。0为无错误,1为有错误。

这是可选的,与最后状态命令报表例子极其类似。其格式为:

return从函数中返回, 用最后状态命令决定返回值。

return 0 无错误返回。

return 1 有错误返回

7.函数返回值测试

#!/bin/bash

#hellofun

functionhello(){

echo"Hello!Thefirstparameteris'$1'."

}

hello

  echo $?   #输出返回的状态值(一般成功是返回0,其它值为失败)

 

相关推荐