网站首页 > 博客文章 正文
在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中如何确定脚本的位置?这篇文章告诉你
你 发表评论:
欢迎- 最近发表
-
- 给3D Slicer添加Python第三方插件库
- Python自动化——pytest常用插件详解
- Pycharm下安装MicroPython Tools插件(ESP32开发板)
- IntelliJ IDEA 2025.1.3 发布(idea 2020)
- IDEA+Continue插件+DeepSeek:开发者效率飙升的「三体组合」!
- Cursor:提升Python开发效率的必备IDE及插件安装指南
- 日本旅行时想借厕所、买香烟怎么办?便利商店里能解决大问题!
- 11天!日本史上最长黄金周来了!旅游万金句总结!
- 北川景子&DAIGO缘定1.11 召开记者会宣布结婚
- PIKO‘PPAP’ 洗脑歌登上美国告示牌
- 标签列表
-
- ifneq (61)
- 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)
本文暂时没有评论,来添加一个吧(●'◡'●)