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

相关推荐

  • 是否

    是否

    Linux干货 2016-08-22
  • RHCE系列之备份工具—-镜像备份Rsync

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://nolinux.blog.51cto.com/4824967/1431426     我一哥们最近在搞备份,需要用到rsync。因此,鄙人就简单总结了下rsync,也就有了这篇博文,希望对51…

    Linux干货 2016-08-15
  • 基于NFS服务的mariadb数据库实现

    实验要求:     (1) nfs server导出/data/目录;     (2) nfs client挂载/data/至本地的/mydata目录;本地的mysqld或mariadb服务的数据目录设置为/mydata, 要求服务能正常启动,且可正常 存储数据;   (3)用另一台主机,…

    2017-06-11
  • Linux基础之软件包管理

    一.概述 在redhat系列的发行版中,采用rpm软件包管理器,rpm原名是Red Hat Package Manager,后来当其他发行版也采用这种软件包管理机制以后,重新命名,改为RPM Package Manager,它所能提供的功能是将编译好的应用程序文件打包成一个或几个程序文件,从而使得用户能够方便的安装,升级,卸载软件,而yum则是rpm包管理器…

    Linux干货 2016-11-16
  • Linux用户、组、权限管理

    Linux用户与组管理 Linux系统上,用户通过内核拷贝程序到内存中,从此发起进程。进程以发起者的身份进行,进程对文件的访问权限,取决于发起进程的用户的权限。而有些后台进程或服务类进程以非管理员身份运行,为此也需要创建多个普通用户,此类用户不需登录。 系统中,用户类别分为管理员和普通用户(系统用户和登录用户),组类别分为基本组和附加组。管理系统上的用户与组…

    Linux干货 2016-12-07
  • week2

    一、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。 常用工具cp mv rm cat tac head tail more less stat cp   cp SRC…DEST A. 如果SRC是文件: a. 如果目标不存在:新建DEST,并将SRC中的内容填充至DEST中。 b. 如果目标存在: (1). 如…

    Linux干货 2016-11-06