函数介绍
shell编程和其他语言编程一样有函数,函数是有若干条shell命令组成的语句块,实现shell脚本代码重用和模块化编程
函数分类
1、系统函数:系统自带函数可以直接使用
2、自定义函数
系统函数
basename系统函数
basename函数是用于获取文件名的函数,更具给出的文件路径截取除文件名
语法
basename [string / pathname] [suffix]
根据指定字符串或路径名截取文件名,比如:
根据路径"/one/two/aa.txt",可以截取出aa.txt
suffix: 用于截取的时候去掉直指定的后缀名
dirname系统函数
语法
dirname 文件绝对路径
得到文件前缀,就是文件所属的目录
自定义函数
开发人员可以通过自定义开发函数,实现代码复用
语法
#函数的定义
[ function ] funname ()
{
命令
[return 返回值]
}
#调用函数
funname 传递参数1 传递参数2 ……
1、可以带function fun()定义,也可以直接fun()定义不要带任何参数。
2、参数返回,可以显示加:return返回,如果不加,将以最后一条命令运行结果,作为返回值。return后跟数值n(0-255)
注意
在函数调用地方之前先声明函数,shell脚本是逐行执行,只要先运行了函数,后面才可以使用函数
无参无返回值
#定义函数
demo()
{
echo "执行了函数"
}
#调用函数
demo
有参函数
在shell中,调用参数时可以向其传递参数。在函数体内部,通过 $n 的形式来获取参数的值,列入,$1 表示弟一个参数,$2 表示第二个参数…
参数处理 | 参数说明 |
$# | 传递脚本或函数的参数个数 |
$* | 以一个单字符串显示所有向脚本传递的参数 |
$$ | 脚本运行的当前进程ID号 |
$! | 后台运行的最后一个进程ID号 |
$@ | 与$*相同但是使用时加引号,斌且在引号中返回每个参数 |
$? | 显示命令退出状态。0表示没有错误,其他任何值别是有错误 |