熟悉任意一门其它语言的小伙伴应该都知道函数的重要性。而在shell中也可以使用函数简化我们的编程。
首先看看shell中如何定义一个函数
[function] name() { #function可以省略,name为函数名
commands #函数体
} #函数体用{}括起来
shell中的函数使用位置参数接收入参($1-${n},$@,$*,需要注意无论在主程序还是函数中$0都代表的是脚本名而不是函数名)。
定义完了函数我们就要学会如何使用了。函数既可以在当前脚本中直接使用,也可以在命令行与其他脚本中使用。但如果需要在命令行或其他脚本中使用则需要使用source命令引入。下面通过一个简单的例子学习函数的定义与使用。
函数定义:
1 # !/bin/bash
2
3 first() {
4 echo $1
5 }
功能就是打印传入函数的第一个参数。
在命令行调用
chenfeihaodeMacBook-Pro:sh chenfeihao$ source first_function.sh
chenfeihaodeMacBook-Pro:sh chenfeihao$ first 小猪佩琪
小猪佩琪
在其他脚本中调用
1 # !/bin/bash
2 # 测试shell函数的调用
3
4 # 导入声明了函数first的文件
5 source first_function.sh
6
7 echo "调用函数first"
8 first $1
调用结果
chenfeihaodeMacBook-Pro:sh chenfeihao$ ./call_first_function.sh 社会人
调用函数first
社会人
使用函数可以减少一些重复的代码块并使我们的程序变得更容易理解。当然如果编写的脚本的逻辑比较简单清晰也可以不使用函数。