为什么要用shell函数?
简单地说函数的作用就是把程序里多次调用的相同的代码 ,定义成一份,然后起个名字,所有的调用都是只用这个名字就可以了。修改代码时,只需要改变函数体内的代码即可。
优势:
-
把相同的程序段定义成函数,可以节省程序代码量
-
增加程序的可读,易读性
-
实现程序的功能模块化
shell函数语法
简单的语法:
函数名(){
指令...
return n
}
规范的语法:
function 函数名(){
指令...
return n
}
shell函数执行
调用函数:
1)直接执行函数名即可。注意,不要带小括号。
函数名
注意:函数体必须再要执行的函数名的前面定义
2)带参数的函数执行方法:
函数名 参数1 参数2
【函数带参数的说明】
-
在函数体重位置参数{$1,$2,$3,$4,$5,$#,$*,$?以及$@}都是可以是函数的参数
-
父脚本的参数则临时地被函数参数所掩盖或隐藏
-
$0比较特殊,他仍然是父脚本的名称
-
当函数完成时,原来的命令行参数会恢复
-
在shell函数里面,return命令的功能与工作方式与exit相同,用于跳出函数
-
在shell函数体里使用exit会终止整个shell脚本
-
return语句会返回一个退出值给调用的程序
shell函数范例
范例1:开发脚本建立两个简单函数并调用执行
|
1
2
3
4
5
6
7
8
9
|
#!/bin/bash
xcn( ) {
#定义函数
echo
"i am xcn"
}
xcn
#调用函数
执行结果:
[root@XCN ~]
# sh fun01.sh
i am xcn
|
|
1
2
3
4
5
6
7
|
#!/bin/bash
xcn( ) {
echo
"i am xcn"
}
echo
"`xcn`"
#打印函数
[root@XCN ~]
# sh fun01.sh
i am xcn
|
范例2:使用行数及函数传参,脚本传参实现,对任意指定URL判断异常
|
1
2
3
4
5
6
7
8
9
|
#!/bin/bash
function
check_url( ){
curl -I -s $1|
head
-1 &&
return
0||
return
1
}
check_url $1
测试结果:
[root@XCN ~]
# sh check_web_by_fun.sh baidu.com
HTTP
/1
.1 200 OK
|
本文转自 baishuchao 51CTO博客,原文链接:http://blog.51cto.com/baishuchao/1942785