一、SHELL中的函数
1.语法
方法1:
函数名( ) {
函数体
return n
}
方法2:
function 函数名( ) {
函数体
return n
}
2.调用函数
最后一步 fun1 调用函数
3. 引用函数
每次引用函数时,bash会重新回到函数的定义。
4. 函数不一定要在最开始定义,但是如果函数在定义前就使用,会报错
5. 函数名必须是唯一的,如果重新定义了函数,新的函数会覆盖旧的
6. 返回值
1)默认退出状态码:默认情况下,函数的退出状态码是函数中最后一条命令返回的退出状态码
2)使用return命令
shell使用return命令来退出函数并返回特定的退出状态码
3)使用函数输出
将函数的输出保存在shell变量中,可以获得任何类型的函数输出,并将其保存到变量中
4)函数中使用变量
可以向函数中传递参数函数名会在$0
变量中定义
函数命令行上的任何参数都会通过$1
,$2
定义
$#
来判断传给函数的参数数目
5)函数不能直接从命令行获取脚本的参数值
二、shell——全局变量与局部变量
变量的作用域
一、全局变量:
任何地方都生效的变量,默认情况下,脚本主体内定义全局变量,函数内可以用,函数外也可以用
二、局部变量:
定义方法: local value
三、shell中利用函数递归—计算阶乘
函数递归
计算阶乘:
四、shell中信号的捕捉(trap)
信号
linux通过信号来在运行在系统上的进程之间通信也可以通过信号来控制shell脚本的运行
(1)捕捉信号:trap命令
常用信号 ctrl+c(终止进程) ctrl+z(暂停进程,打入后台)
(2)列出中断信号与键盘的关系
(3)信号屏蔽
(4)脚本方式:
(5)捕捉脚本的退出
(6)练习题
执行脚本时,使用ctrl+c可以将/tmp/westos下建立的文件都删除掉