网站首页 > 博客文章 正文
在Shell脚本中可以定义并使用函数。其定义格式为:
[function]函数名( )
{
命令表
}
其中,关键字function可以缺省。
函数应先定义,后使用。调用函数时,直接利用函数名,如showfile,不必带圆括号,就像一般命令那样使用。
Shell脚本与函数间的参数传递可利用位置参数和变量直接传递。
变量的值可以由Shell脚本传递给被调用的函数,而函数中所用的位置参数$1、$2,等对应于函数调用语句中的实参,这一点是与普通命令不同的。下面是使用函数的示例:
#func is a function name
func()
{
echo "begin:"
echo $a $b $c#变量直接传递
echo $1 $2 $3#位置参数
echo "end"
}
a=5 b=10 c=1999
func month day year
echo "today is `date`"
结果:
[hadoop@localhost dzztest]$ ./b.sh
begin:
5 10 1999
month day year
end
today is Sat Sep 10 03:03:22 PDT 2022
执行函数并不创建新的进程,是通过Shell进程执行。通常,函数中的最后一个命令执行之后,就退出被调函数。也可利用return命令立即退出函数,其语法格式是:return [ n ]其中,n值是退出函数时的退出值(退出状态),即$?的值。当n值缺省时,则退出值是最后一个命令执行后的退回值。
sum1()
{
n=`expr $n1 + $n2 + $n3`
echo "sum=$n"
}
average1()
{
n=`expr $n1 + $n2 + $n3`
n=`expr $n / 3`
echo "average=$n"
}
read n1 n2 n3
sum1 n1 n2 n3
average1 n1 n2 n3
[hadoop@localhost dzztest]$ ./c.sh
3 5 6
sum=14
average=4
[hadoop@localhost dzztest]$
2022-9-23
猜你喜欢
- 2025-02-04 无文件攻击:虚拟化安全如何做好针对性防护 (只做干货),关注交流
- 2025-02-04 shell编程(shell编程是干嘛的)
- 2025-02-04 关于PowershellMiner无文件挖矿病毒感染Windows系统的预警通报
- 2025-02-04 linux中内部变量,环境变量,用户变量的区别
- 2025-02-04 字节一面,操作系统这题没答好,可惜了
- 2025-02-04 有点意思的Shell特殊变量(shell 特殊变量)
- 2025-02-04 在Linux中,常见的shell有(linux中常用的shell命令有哪些)
- 2025-02-04 C# Windows Api User32.dll窗体和消息动态库详解
- 2025-02-04 Shell脚本怎么写?(0)(shell脚本怎么写中文)
- 2025-02-04 shell中如何确定脚本的位置?这篇文章告诉你
你 发表评论:
欢迎- 368℃用AI Agent治理微服务的复杂性问题|QCon
- 367℃手把手教程「JavaWeb」优雅的SpringMvc+Mybatis整合之路
- 359℃初次使用IntelliJ IDEA新建Maven项目
- 352℃Maven技术方案最全手册(mavena)
- 348℃安利Touch Bar 专属应用,让闲置的Touch Bar活跃起来!
- 347℃InfoQ 2024 年趋势报告:架构篇(infoq+2024+年趋势报告:架构篇分析)
- 345℃IntelliJ IDEA 2018版本和2022版本创建 Maven 项目对比
- 343℃从头搭建 IntelliJ IDEA 环境(intellij idea建包)
- 最近发表
- 标签列表
-
- powershellfor (55)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- vue数组concat (56)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)