Shell 函数可用于存放一系列的指令。将一些相对独立的代码变成函数,可以提高程序可读性与重用性,避免编写大量重复代码。 “function”关键字表示定义一个函数,可以省略; “{”符号表示函数执行命令的入口,该符号可以与函数名同行也可以在函数名下一行 的句首; “}”符号表示函数体结束,两个大括号之间{ }是函数体; “命令序列”部分可以是任意的 Shell 命令,也可以调用其他函数; “return”表示退出函数返回一个退出值,通过返回值判断执行是否成功,也可以使用 exit 终止整个 Shell 脚本。
下面的例子定义了一个函数并进行调用:
#!/bin/bash demoFun(){ echo "这是我的第一个 shell 函数!" } echo "-----函数开始执行-----" demoFun echo "-----函数执行完毕-----"输出结果:
-----函数开始执行----- 这是我的第一个 shell 函数! -----函数执行完毕-----■函数在Shell脚本中仅在当前Shell环境中有效 ■Shell脚本中变量默认全局有效 ■将变量限定在函数内部使用local命令
在Shell中,调用函数时可以向其传递参数。在函数体内部,通过 $n 的形式来获取参数的值,例如,$1表示第一个参数,$2表示第二个参数…
Shell 也可以实现递归函数,就是可以调用自己本身的函数。在 Linux 系统上编写 Shell 脚本的时候,经常需要递归遍历系统的目录,列出目录下的文件和目录,逐层递归列出,并对这些层级关系进行展示
function list_files() { for f in `ls $1`; do if [ -d "$1/$f" ]; then echo "$2$f" list_files "$1/$f" " $2" done } else fi echo "$2$f" list_files "/var/log" ""数组是一种常见的数据结构,主要的应用场景包括:获取数组长度、获取元素长度、遍历元素、元素切片、元素替换、元素删除等等。