shell脚本编程之函数

  在编写脚本时经常会遇到某个任务需要重复使用的问题,需每次都要输入同样的代码是件挺烦人的事情,还好可以通过编写函数还简化这项工作。

  函数其实就是给一段代码起个名字,在每次使用这段代码的时候可以直接使用函数名来调用就可以了。

一、创建函数

  创建函数的格式有两种:

  格式1:function 函数名{

        函数体

       }

  格式2:函数名(){

        函数体

       }

  调用函数时直接写函数名即可。

二、使用函数

1.jpg

   上例中在一开始定义了名为test的函数,然后直接使用函数名调用即可。

三、函数的返回值

  1、执行状态返回值:函数体中最后一次执行的命令状态结果;

2.jpg

  函数执行成功,返回值为默认的0。

  2、自定义执行状态返回值

   可以使用return命令来定义状态返回值,状态值的取值范围为0-255。

5.jpg

四、接受参数的函数

  函数也可以带入参数,如下面的实例所示:

5.jpg

  函数中引用了两个参数,则在使用函数时需要手动将参数传递过去,如图中标注处。

6.jpg

五、创建函数库文件

  可以将自定义的函数保存在一个的文件中,在需要时可以直接调用所需要的函数。

  下面是自定义的一个库文件:

1.jpg

  在脚本中使用这个库文件中的函数:

2.jpg

  脚本的运行结果:

3.jpg

  也可以在命令行中来使用自定义的函数,只需要在bash shell启动时读取这个库文件。

  在~/.bashrc文件中添加库文件:

4.jpg

  在命令行中直接使用自定义的函数:

6.jpg

原创文章,作者:petmaster,如若转载,请注明出处:http://www.178linux.com/10766

(0)
petmasterpetmaster
上一篇 2016-01-05
下一篇 2016-01-05

相关推荐

  • 马哥面授班20期-第一周(计算机基础,linux入门)

    一.计算机发展历史及硬件组成部分     计算机发展历史:第一代:(1946-1957)电子管时代,第二代:(1958-1964)晶体管时代,              第三代:(1965-1970)集成电路时…

    Linux干货 2016-07-26
  • 8.4日作业

    1、用正则表达式表示IP地址 ifconfig | grep -E -o "(\<([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>\.){3}(\<[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]25[0-5]\>)" 5、用正…

    Linux干货 2016-08-08
  • zabbix

    一、zabbix简介 Zabbix是一个基于WEB界面的分布式开源监控系统,主要有2部分构成,Zabbix server于Zabbix agent,同时也支持Zabbix proxy。 现在,我们已经将Zabbix大量的应用到了线上环境。在日常的监控中,深切的体验到了Zabbix的高效快捷和优秀的扩展能力。 Zabbix的底层采集程序是用C语言编写的Serv…

    Linux干货 2016-01-05
  • Linux文件权限之facl

    1、什么是facl         facl(file access control list)文件访问控制列表,主要目的是在原有的u,g,o之外,另一层让普通用户能控制赋权给另外的用户或组的机制;       &nbs…

    Linux干货 2016-09-19
  • 马哥教育网络班20期+第5周课程练习

    1、显示/boot/grub/grub.conf中以至少一个空白字符开头的行; grep "^[[:space:]]\+.*" /boot/grub/grub.conf   2、显示/etc/rc.d/rc.sysinit文件中以#开头,后面跟至少一个空白字符,而后又有至少一个非空白字符的行; grep&nb…

    Linux干货 2016-07-12
  • haproxy实战之haproxy实现mysql负载均衡

    haproxy实战之haproxy实现mysql负载均衡 实验目的haproxy + mysql实现负载均衡 1.准备机器,做好时间同步,域名主机名解析 192.168.42.151 [node2 haproxy] 192.168.42.152 [node3 mariadb] 192.168.42.153 [node4 mariadb] 2.node3,no…

    Linux干货 2017-06-29