函数允许您对分解成更小的,逻辑子部分,然后可以被要求执行各项任务时,它需要一个脚本的整体功能。
使用函数来执行重复性的任务,是一个很好的方式来创建代码的重用。代码重用是现代面向对象编程的原则的重要组成部分。
Shell函数是类似于其他编程语言中的子程序,过程和函数。
创建函数:
声明一个函数,只需使用以下语法:
function_name () {
list of commands
}
函数名 function_name,这就是你将使用它从其他地方在你的脚本调用。函数名必须遵循括号内,后括号内的命令的列表。
例如:
以下是使用函数简单的例子:
#!/bin/sh
# Define your function here
Hello () {
echo "Hello World"
}
# Invoke your function
Hello
当你想执行上面的脚本,它会产生以下结果:
$./test.sh
Hello World
$
参数传递给函数:
你可以定义一个函数,它接受参数,而调用这些函数。将这些参数代表$1,$2,依此类推。
以下是一个例子,我们传递两个参数Zara和Ali,然后我们捕获和打印这些参数函数。
#!/bin/sh
# Define your function here
Hello () {
echo "Hello World $1 $2"
}
# Invoke your function
Hello Zara Ali
这将产生以下结果:
$./test.sh
Hello World Zara Ali
$
从函数的返回值:
如果你执行一个exit命令从一个函数内部,其效果不仅是终止执行的功能,而且Shell 程序中调用该函数。
如果你不是想,只是终止执行该函数,再有就是退出来的一个定义的函数。
根据实际情况,你可以从你的函数返回任何值,使用返回的命令,其语法如下:
return code
这里的代码可以是任何你选择这里,但很明显,你应该选择你的脚本作为一个整体的背景下是有意义的或有用的东西。
例子:
下面的函数返回一个值1:
#!/bin/sh
# Define your function here
Hello () {
echo "Hello World $1 $2"
return 10
}
# Invoke your function
Hello Zara Ali
# Capture value returnd by last command
ret=$?
echo "Return value is $ret"
这将产生以下结果:
$./test.sh
Hello World Zara Ali
Return value is 10
$
嵌套函数:
函数更有趣的功能之一是,他们可以调用本身以及调用其他函数。被称为递归函数调用自身的函数。
经过简单的例子演示了一个嵌套的两个函数:
#!/bin/sh
# Calling one function from another
number_one () {
echo "This is the first function speaking..."
number_two
}
number_two () {
echo "This is now the second function speaking..."
}
# Calling function one.
number_one
这将产生以下结果:
This is the first function speaking...
This is now the second function speaking...
从提示的函数调用:
你可以把常用功能.profile的定义,这样他们就会每当登录,在命令提示符下,您可以使用它们。
或者,你可以在一个文件中的定义分组为 test.sh,然后通过键入当前shell中执行该文件:
$. test.sh
这样做的效果造成任何test.sh内定义的函数,可以阅读在如下定义为当前shell:
$ number_one
This is the first function speaking...
This is now the second function speaking...
$
要删除从 shell 函数的定义,可以使用unset命令 .f 选项。这是相同的命令来删除一个变量的定义Shell。
$unset .f function_name
分享到:
相关推荐
shell编程与普通的编程语言相比,shell编程可以用来执行一些流程调度以及任务量比较轻的处理流程的处理工具--因为毕竟是系统命令的整合调用,处理的时候,都会产生系统调用,在处理任务量大且比较复杂的流程的任务时...
shell 函数
①创建第一个shell脚本②运行shell脚本shell 基础语法 ①变量②变量分类与数组③shell传递参数④基本运算符shell流程控制语法 ①if else条件判断②for循环③while循环④until循环⑤case语句⑥跳出循环shell函数①...
关于vb6.0的 SHELL函数和串口通信实例
Linux中的shell函数Linux中的shell函数
简单的介绍SHELL函数的相关知识
linux运维学习笔记:Shell函数
day5shell函数和数组shell编程.txt
VBShell函数用法参照.pdf
VB中shell函数实例——大学生最需要的七类网站,学习用可以
tacklebox, 组织和共享 fish shell 函数的框架 Tacklebox问题组织和共享 shell 代码库和Fragment是很困难的。解决方案Tacklebox是 Fish shell 框架,它使得组织和共享有用的shell 功能。工具和主题集合变得很容易。...
Linux运维-运维系统服务04-Shell脚本d6-Shell函数与正则表达式-10函数中return作用1.mp4
ListView以及Windows的Shell函数显示Windows的程序组关于vb网络的编程基础知识winsock控件的使用,简单的聊天程序,局域网的网络编程
shell命令,结构性语句,shell函数,一些C语言关键字
linux shell 函数
一组Kubernetes原生dabbling的shell函数集合
LINUX原理及应用:Linux中的shell函数.ppt
composure - 撰写、文档、版本和组织您的shell函数
Linux运维-运维系统服务04-Shell脚本d6-Shell函数与正则表达式-07case应用案例1.mp4
Linux运维-运维系统服务04-Shell脚本d6-Shell函数与正则表达式-13综合案例需求说明.mp4