时间:2025-05-18 13:33
人气:
作者:admin
在 Shell 脚本中,函数是一种组织代码的方式,它允许你将一组相关的命令组合在一起,以便在脚本的不同地方重复使用
简单点说就是将shell脚本中重复的代码提取出来,精简脚本的内容,让脚本更加规范,可读性更高。
函数定义使用function关键字,
注意:func_name代表函数名称
第一种(最完整的)
function func_name() {
shell内容
shell内容
...
return 返回结果
}
第二种
func_name() {
shell内容
shell内容
...
return 返回结果
}
第三种
function func_name {
shell内容
shell内容
...
return 返回结果
}
在脚本中直接使用函数名即可。
调用函数需要在函数声明后调用,如果是声明前调用则会出现异常
示例:
# 编写脚本
[root@master01 ~]# cat shell01.sh
#!/bin/bash
function hello() {
echo "hello shell"
}
hello
# 加上执行权限
[root@master01 ~]# chmod +x shell01.sh
# 执行脚本
[root@master01 ~]# ./shell01.sh
hello shell
在 Shell 中,函数可以接受参数,这些参数通过位置传递,就像脚本接受命令行参数一样。
示例:
# 定义脚本
[root@master01 ~]# cat shell02.sh
#!/bin/bash
function add_number() {
echo '你输入的第一个参数:'$1
echo '你输入的第二个参数:'$2
count=`awk -v num1=$1 -v num2=$2 'BEGIN {print num1+num2}'`
echo '和为:'$count
}
add_number 2 4
# 添加执行权限
[root@master01 ~]# chmod +x shell02.sh
# 执行脚本
[root@master01 ~]# ./shell02.sh
你输入的第一个参数:2
你输入的第二个参数:4
和为:6
Shell 函数的返回值通过退出状态码(exit status)传递,范围是 0-255,其中 0 表示成功,非零表示失败。
示例:
# 定义脚本
[root@master01 ~]# cat shell03.sh
#!/bin/bash
function add_number() {
echo '你输入的第一个参数:'$1
echo '你输入的第二个参数:'$2
count=`awk -v num1=$1 -v num2=$2 'BEGIN {print num1+num2}'`
echo '和为:'$count
return 222
}
add_number 2 4
echo '函数返回值:'$?
# 给脚本添加执行权限
[root@master01 ~]# chmod +x shell03.sh
# 执行脚本
[root@master01 ~]# ./shell03.sh
你输入的第一个参数:2
你输入的第二个参数:4
和为:6
函数返回值:222
变量根据所在位置不同分为两类:
示例:
global_var="global"
function test_scope {
local local_var="local" # 局部变量
echo "Inside function: global_var=$global_var, local_var=$local_var"
}
# 输出:Inside function: global_var=global, local_var=local
test_scope
# 输出:Outside function: global_var=global, local_var=
echo "Outside function: global_var=$global_var, local_var=$local_var"
注意事项:
本文来自博客园,作者:huangSir-devops,转载请注明原文链接:https://www.cnblogs.com/huangSir-devops/p/18849973,微信Vac6666666,欢迎交流
上一篇:在你的面前失语