1、什么是函数
把经常反复调用的代码封装起来起一个名字。当用到这段代码时直接调用函数,可以节省时间和空间. 通过使用函数,可以使脚本代码更加简洁,增强易读性,提高Shell脚本的执行效率
2、如何定义函数
——在脚本里定义
2.1、定义函数的方法/格式
(1)格式1
function 函数名 {
命令序列
……………………..
}
(2)格式2
——这种方法较常用
函数名() {
命令序列
……………………..
}
2.3、使用函数时的规划
(1)函数是先定义后调用
(2)函数名相同,后面定义的函数生效
(3)在函数体里定义的变量是局部变量,只能在函数体内使用;在函数体外定义的变量是全局变量,任意函数都能使用
(4)函数名区分大小写
(5)函数之间可以互相调用
3、如何使用函数
(1)直接使用函数名调用
(2)如果函数能处理位置参数,以”函数名参数1 参数2 ……….”
(3)可以根据需要多次调用
4、如何给函数传数据(传值)
格式:
函数名值1 值2 …..
——传递的值作为函数的位置变量
示例:
任意个数的数值相加
1
2
3
4
5
6
7
8
9
10
11
#!/bin/bash
sum(){
s=""
until [ $# -eq 0 ]
do
let s+=$1
shift
done
echo $s
}
sum $*
fork炸弹,仅13个字符,递归死循环,会产生海量进程,迅速耗尽系统资源
vim fork.sh
.( ) #定义.函数
{ #函数块开始
.|.& #递归调用.,若不成功,则后台掉用.
} #函数块结束
; #与下一条执行语句分隔
. #调用该函数
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY