函数
1.定义函数
function function_name () {
list of commands
[ return value ]
}
1
2
3
4
2
3
4
其中function
关键字是可选的
例子:
#!/bin/bash
hello(){
echo 'hello world';
}
hello
# 结果
hello world
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
2.函数调用
调用函数只需要给出函数名,不需要加括号
函数返回值,可以显式增加return语句;如果不加,会将最后一条命令运行结果作为返回值
Shell 函数返回值只能是整数,一般用来表示函数执行成功与否,0表示成功,其他值表示失败。如果 return 其他数据,比如一个字符串,往往会得到错误提示:numeric argument required
,除非这个字符串是数字
如果一定要让函数返回字符串,那么可以先定义一个变量,用来接收函数的计算结果,脚本在需要的时候访问这个变量来获得函数返回值
#!/bin/bash
function hello(){
echo "hello world";
}
str=$(hello)
echo $str
echo $str
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
如果你希望直接从终端调用函数,可以将函数定义在主目录下的 .profile 文件,这样每次登录后,在命令提示符后面输入函数名字就可以立即调用
3.函数参数
在Shell中,调用函数时可以向其传递参数。在函数体内部,通过 $n
的形式来获取参数的值,例如,$1
表示第一个参数,$2
表示第二个参数...
注意,$10
不能获取第十个参数,获取第十个参数需要${10}
。当n>=10
时,需要使用${n}
来获取参数
4.获取函数返回值
当你希望将函数或命令的输出结果赋值给变量时,你需要使用命令替换机制。Bash 支持两种命令替换语法:
- 反引号:``
- $()
#!/bin/bash
function sum()
{
echo `expr 1+2+3`
}
num=$(sum)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8