分类:
2011-01-12 20:16:37
1. 创建函数(两种方式)
function name {
commands
}
name() {
commands
}
例:
#!/bin/bash
function func1 {
Echo “This is an example of a function”
}
func1
2. 函数定义必须要在调用它之前,否则会提示commands not found
3. 函数名唯一,否则新定义的函数将替代原先的定义
例:
#!/bin/bash
function func1 {
Echo “this is the first definition”
}
func1
function func1 {
Echo “this is a repeat of the same function name”
}
func1
4. 可以使用return设定函数返回值
例:
#!/bin/bash
Function db1 {
Read –p “enter a value: “ value
Echo “doubing the value”
Return $[ $value * 2 ]
}
db1
echo “the new value is $?”
两点注意:
(1) 当函数执行完成时需要立即读取返回值(以防$?值被其他指令替换),除非将函数发返回值保存在某个变量中:result=`db1`。
(2) 返回值范围从0到255
5. 在函数中同样可以使用参数变量,例如$0代表函数名本身,$1,$2等等代表接下来的各个参数,包括$#代表参数的个数。
例: #!/bin/bash function addem { if [ $# -eq
3 ] then echo
$[ $1 + $2 ] else echo
-1 fi } echo –n “Adding 10 and 15: “ value=`addem 10 15` echo $value exit 0 6. 不允许在函数中直接引用脚本的参数,除非在调用该函数时手动为其加入参数。 例: #!/bin/bash function func7 { echo $[ $1
* $2 ] } if [ $# -eq 2 ] then value=`func7
$1 $2` #此处引用脚本的参数 echo “the
result is $value” else echo “usage:
command num1 num2” fi exit 0 7. 脚本中定义的变量默认都为全局变量;若定义一个局部变量只需在前面加上local,如:local temp=$[ $value + 5 ]。 #!/bin/bash function func1 { local temp=$[
$value + 5 ] result=$[
$temp * 2 ] } temp=4 value=6 func1 echo “now result is $result” echo “now temp is $temp” exit 0
chinaunix网友2011-03-08 16:11:34
很好的, 收藏了 推荐一个博客,提供很多免费软件编程电子书下载: http://free-ebooks.appspot.com