详情地址:  /shell/base2/


(资料图)

Shell 函数

函数用于代码重用。

函数定义封装代码块,函数调用执行代码块,1次定义,N次调用,即N次重用。

1 基本使用

函数的使用步骤:1)定义函数;2)调用函数。

定义函数语法

function 函数名(){  函数体}

实际项目中,函数名要求见名思义。

简化写法:省略function

函数名(){  函数体}

例1:定义函数显示网站与作者。

function f1(){  echo "网站名称:小步教程"  echo "网站地址:"  echo "网站作者:小步2023"}

调用函数语法

函数名

没有定义参数时,直接写函数名即调用,就像我们调用其它命令一样。

可以理解为:系统的命令就是函数。

完整示例:

#定义函数function f1(){    echo "网站名称:小步教程"    echo "网站地址:"    echo "网站作者:小步2023"} #调用函数f1#再调用一次f1

2 变量作用域

shell脚本文件的变量分两种:全局变量与局部变量。

全局变量:无论函数内部与外部,直接声明的变量都属于shell文件内的全局变量,定义之后整个文件都可以访问。我们之前使用变量都属于这类。

局部变量:函数内部通过local声明的变量,属于局部变量,离开函数就无法访问。

local 变量=值

local 变量

示例

var1="网站名称:小步教程"function f1(){    var2="网站地址:"    local var3    var3="网站作者:小步2023"    echo "内部访问var1:$var1"    echo "内部访问var2:$var2"    echo "内部访问var3:$var3"} f1 echo "外部访问var1:$var1"echo "外部访问var2:$var2"echo "外部访问var3:$var3"

注意事项

脚本文件里定义的变量,无论全局变量与局部变量,直接执行完毕之后,当前Shell无法访问。

3 参数

我们调用系统的命令都会传递参数,例如创建文件夹

mkdir 文件夹1

这里是一个参数;

还可以多个参数:

mddir 文件夹1 文件夹2 文件夹3

调用函数传递参数语法

函数名 参数1 参数2 …参数n

定义函数获取参数

不像很多语言,定义参数需要设置函数声明。Shell函数只需要在函数体中直接获取传递参数即可。

$1获取第1个参数,$2获取第2个参数,依次类推。

示例

例1:上述函数的网站名与作者由参数传递。

f3(){    echo "网站名称:$1"    echo "网站地址:$2"    echo "网站作者:$3"} #调用函数f3 小步教程 小步2023

动态获取函数与参数信息

$FUNCNAME表示函数名字,$#表示参数个数,$*表示所有参数。

f3(){    echo "网站名称:$1"    echo "网站地址:$2"    echo "网站作者:$3"    echo "函数名:$FUNNAME,参数个数:$#,参数列表:$*"} #调用函数f3 小步教程 小步2023

关键词: