函数语法:
函数名 () {
命令
}
或者
function 函数名() {
命令
}
调用方式
函数名 参数
参数和普通的shell脚本参数一模一样,以空格分隔,函数中同样以$1等来读取。
SHELL和其它语言的函数有个区别在于,他保存当前shell内存信息,就是函数可以访问的到父shell中的变量。例如:
#!/bin/sh
#first_function
function hello () {
echo ${MY_WORD}
}
MY_WORD="hello world"
hello
[root@liumengli function]# ./first_function.sh
hello world
我们看到MY_WORD变量被打印了,也许这没什么,在让我们看下面一个调用方式
[root@liumengli function]# cat function.sh
#!/bin/sh
#function.sh
function say_hello () {
echo ${VAR}
return 0 #返回值,暂时别理他
}
[root@liumengli function]#
这是一个只定义了函数的文件,当我们某个脚本想调用say_hello函数时候,可以通过
[root@liumengli function]# cat third_function.sh
#!/bin/sh
#third_function.sh
. \/zhangchi/my_shell/function/function.sh #首先是定位文件,最好是全路径名存,前面是点空格\
VAR="hello world"
say_hello
exit 0
[root@liumengli function]# ./third_function.sh
hello world
先说下调用方式,当某个脚本想调用别的文件定义的函数时候,首先是定位文件,注释里面说明了,再调用即可,这里我们看出了,其它文件中的函数仍然可以访问得到变量VAR。
以上说了2种调用,这里介绍第3种,有些时候我们有大量脚本调用某个文件中的函数,那么你可以把这个文件定位到父进程SHELL中,这样每个有这个父进程启动的脚本都可以直接调用这个函数,像下面这样
[root@liumengli function]# . /zhangchi/my_shell/function/function.main (定位)
[root@liumengli function]# set
。。。。。。。
say_hello ()
{
echo $VAR;
return 0
}
[root@liumengli function]# cat function.main
#!/bin/sh
#function.main
function say_hello() {
echo $VAR
return 0
}
[root@liumengli function]#
set命令可以查看到被定为的函数,可以看到我们say_hello被定为到了父进程中,只要在这个shell下都可以直接使用say_hello,如果想修改需要先移除 say_hello,当然也可以直接修改,不过不是所有linux都直接改可以,所以建议先 unset再修改,再从新定位。
返回值。
返回值和脚本的 exit 有很大的相似,我们同样可以使用if 函数这样利用返回值来做判断条件,如果 return 0则会进入then语句中,如果是非0则会进入 else中。
分享到:
相关推荐
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