linux 函数定义与调用
2018-11-27 本文已影响0人
风吟空城
函数定义
定义语法
linux shell函数定义语法有2种,如下:
语法1
function test {
#函数内容
}
语法2
test() {
#函数内容
}
注:
- 不得声明形式参数,故推荐使用语法1;
- 函数不支持重载,后面相同名称的函数会覆盖前面的函数;
- 方法在调用之前必须先声明;
返回值
函数返回值有2种方式,如下:
方式1
function test {
#函数体...
return n;
}
注:
- n为整数值,返回为0-255,超出了255返回1;返回1有待验证!!!
- 函数返回值,在函数执行过后,可以通过
$?
获取;
方式2
使用反引号“``”,获取函数最后一条命令运行结果,并将该运行结果输出赋予某一变量,如:
function test {
echo "hello";
}
function print {
test_result=`test`;
echo $test_result;
}
注:
- 反引号“``”不是单引号,而是TAB键上面那个键;
函数调用
无参
无参函数调用直接使用函数名调用即可,如:
function test {
echo "hello";
}
function print {
test;
}
有参
有参函数调用和无参调用类似,直接在函数名后加上参数即可,多个参数用空格隔开,如:
function say_hello {
echo "say hello to $1 and $2";
}
function test {
say_hello tom lucy;
}
注:
- $n,n从1开始。$1即为第一个参数,$2即为第二个参数,以此类推...;
附 特殊参数处理字符
参数 | 说明 |
---|---|
$# | 传递到脚本的参数个数。 |
$* | 以一个单字符串显示所有向脚本传递的参数。 |
$$ | 脚本运行的当前进程ID号 |
$! | 后台运行的最后一个进程的ID号 |
$@ | 与$*相同,但是使用时加引号,并在引号中返回每个参数。 |
$- | 显示Shell使用的当前选项,与set命令功能相同。 |
$? | 显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误。 |