zoukankan      html  css  js  c++  java
  • 在Shell中使用函数文件

    需要编写一个较庞大的脚本时,可能会涉及许多函数、变量。这是通常建议将众多的函数、变量放入一个单独的脚本内。这样做的好处很明显,不用担心某个函数、变量是否已经被定义和使用,也不用频繁地定义、清除函数和变量。

    一、函数文件的编写

    函数文件的格式和脚本文件一样。

    [root@localhost shell]# cat function.example 
    #函数文件中也可以不写下面这行Shell调用语句
    #!/bin/bash
    
    #function example.
    #This is a function definition script.
    #2013/12/17
    
    hello()
    {
            echo "Now is the function hello."
            echo "Hello! $1."
            return 
    }
    
    function hi()
    {
            echo "Now si the function hi."
            echo "Hi! $1."
            return 
    }

    二、函数文件的调用

    要调用已经编写好的函数文件,可以像定制工作环境那样,将函数文件包含在脚本文件中,然后直接进行调用。

    (1)下面引入调用函数文件的示例脚本call_func_file.sh。在这个脚本中使用执行的方式调用函数文件,然后再直接调用函数文件中的函数。

    [root@localhost shell]# cat call_func_file.sh 
    #!/bin/bash
    
    #This is a example script.
    #2013/12/17
    
    #function.example
    . ./function.example
    
    #call function hell
    echo "Now call the function hello."
    hello Jhon
    
    #call function hi
    echo "Now call the function hi."
    hi Alix

    从上面的示例文件中可以看出,调用函数文件的格式为:

    . ./function.example

    使用这种方式调用函数文件时,函数文件的路径应该与脚本文件的路径相同,否则在调用时应该使用函数文件的绝对路径或相对路径。

    执行示例脚本:

    [root@localhost shell]# ./call_func_file.sh 
    Now call the function hello.
    Now is the function hello.
    Hello! Jhon.
    Now call the function hi.
    Now is the function hi.
    Hi! Alix.

    (2)除了上面介绍的调用方式外,函数文件也可以像变量一样在命令提示符下使用。在命令提示符中调用函数文件后,就可以直接调用函数。

    在命令提示符中调用函数文件:

    [root@localhost shell]# . ./function.example 
    [root@localhost shell]# hi Alix
    Now is the function hi.
    Hi! Alix.
    [root@localhost shell]# hello Alix
    Now is the function hello.
    Hello! Alix.

    用户也可以使用上面的方法,将函数文件写入用户的环境变量配置文件中,然后像使用命令一样调用自定义的函数,以实现较复杂的功能。

  • 相关阅读:
    ORACLE 递归查询(转)
    J2EE框架(TomcatStrutsHibernateSpringAjax(dojo))开发步骤
    java.lang.NoClassDefFoundError: net/sf/cglib/proxy/CallbackFilter 异常解决办法
    Oracle WebCenter 11g 快速开发指南翻译(二)
    keytool密钥和证书管理工具使用详解(整理)
    内存溢出异常解决方案总结
    Spring+JDBC组合开发
    Oracle WebCenter 11g 快速开发指南翻译(三)
    SQL SERVER 2005 数据挖掘与商业智能完全解决方案学习笔记(一)
    MyEclipse 打开Struts配置文件时出错的终级解决办法
  • 原文地址:https://www.cnblogs.com/nufangrensheng/p/3478935.html
Copyright © 2011-2022 走看看