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 12:59
下一篇 2016-01-05 13:00

相关推荐

  • 网络配置——IP划分网络基础

    Linux网络属性配置: 计算机网络: TCP/IP:协议栈         ISO,OSI:协议栈学习 MAC:Media Access Control          48bits: &nbsp…

    Linux干货 2016-09-07
  • 马哥教育网络班22期+第六周课程练习

    1、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#; ]# cp -v  /etc/rc.d/rc.sysinit /tmp/    `/etc/rc.d/rc.sysinit' -> `/tmp/rc.sysinit&…

    Linux干货 2016-10-17
  • 用户和组及批量创建

    用户和组       操作系统都有用户和组,windows,linux等等,用户和组用来做什么呢?       用户,是我们进入系统时的凭证,不是每一个人想进就进的。你想吧,如果操作系统没有用户就能登录进系统,那这就带来了许许多多的安全隐患了。而组则是为了方便管理用户的一个组容器。 &nb…

    系统运维 2016-08-04
  • 第十周 N21 总有刁民想害朕

    1、请详细描述CentOS系统的启动流程(详细到每个过程系统做了哪些事情)   加电-MBR-GRUB-/sysinit-init X 对应的服务-/etc/rc.d     MBR        读取分区表     GRUB      &…

    Linux干货 2016-09-26
  • 用户权限过滤练习(w4)

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其他用户均没有任何访问权限。 [root@keyou ~]# cp -r /etc/skel/ /home/tuser1 | chmod -R g-rwx,o-rw…

    系统运维 2016-11-20
  • lvm的应用

    前言    lvm是logical volume manager(逻辑卷管理器)的简称,通过将若干个磁盘分区连接成一个整块的卷组(volumegroup),形成一个存储池,管理员可以在卷组上随意创建逻辑卷(logicalvolumes),并进一步在逻辑卷组上创建文件系 统。管理员通过LVM可以方便的调整存储卷组的大小,并且可以对磁盘存储按…

    Linux干货 2016-05-23