创建函数
function name {
commands
}
name
属性表示函数的唯一名称,在脚本中,每个函数名都是唯一的。
commands
是构成函数的bash shell命令
例如
#!/bin/bash
function test {
echo "test"
}
test
返回值
使用return返回状态码
#!/bin/bash
function test {
read -p "enter number:" nu
return $[ $nu * 2 ]
}
test
echo "result number = $?"
但当用这种方法从函数中返回值时,要小心了。记住下面两条技巧来避免问题:
- 函数一结束就取返回值;
- 退出状态码必须是0~255。
- 如果在用
$?
变量提取函数返回值之前执行了其他命令,函数的返回值就会丢失。$?
变量会返回执行的最后一条命令的退出状态码。
第二个问题界定了返回值的取值范围。由于退出状态码必须小于256,函数的结果必须生成
一个小于256的整数值。任何大于256的值都会产生一个错误值
使用函数输出
#!/bin/bash
function test {
read -p "enter number:" nu
echo $[ $nu * 2 ]
}
t=$(test)
echo "result t = $t"
函数中使用变量
向函数传递参数
函数可以使用标准的参数环境变量来表示命令行上传给函数的参数。例如,函数名会在$0
变量中定义,函数命令行上的任何参数都会通过$1、$2
等定义。也可以用特殊变量$#
来判断传给函数的参数数目
#!/bin/bash
function test {
echo "nu = $1"
}
test 20