• 自学Linux Shell16.1-函数概念


    点击返回 自学Linux命令行与Shell脚本之路

    16.1-函数概念

    编写比较复杂的shell脚本时,完成具体任务的代码可能需要重复使用。bash shell提供满足这种要求的特性。
    函数是被赋予名称的脚本代码块,可以在代码的任意位置重用。每当需要在脚本中使用这样代码块时,只需引用该代码块被赋予的函数名称。

    1. 创建函数

    在bash shell脚本中创建函数可以使用两种格式。
    一种格式是使用关键字function,后跟代码块的函数名:

    1 function name {
    2          commands
    3 }
    • name属性定义了该函数的唯一名称。脚本中自定义的每个函数都必须赋予唯一的名称。
    • commands是组成函数的一条或多条bash shell命令。当调用函数是,就像在普通脚本一样,bash shell按照各条命令在函数中出现的顺序依次执行。

    另一个格式,更接近一般编程语言定义函数的方式:

    1 name() {
    2 commands
    3 }
    • 函数名之后的空白园括号表明这是在定义函数。
    • 该格式的函数命名规则与前面的shell脚本函数格式相同。

    2. 使用函数

    • 函数名func1每次被引用时,bashshell返回func1函数的定义并执行该函数定义的全部名
    • 函数定义不一定位于shell脚本的起始部分,但是应当小心使用。如果在函数定义之前使用函数,会得到错误消息
    • 使用函数前,需要先定义函数
    • 函数的命令需要注意。每个函数名必须唯一,否则会出问题
    • 如果重新定义函数,那么新定义将取代函数原先的定义,这不会引发错误消息

    3.函数返回值

    bashshell将函数看作小型脚本,并以退出状态结束。函数退出的状态有3中生成方式。

    3.1 默认退出状态(不使用)
    默认情况下,函数的退出状态是函数的最后一条命令返回的退出状态。函数执行完毕之后,可以使用标准变量$?来确定函数的退出状态

     

    该函数的退出状态是2,因为最后一条命令执行失败。但无法得知函数的其他命令是否成功执行。

     

    由于函数结尾是能够完全成功执行的echo语句,虽然有一条命令运行失败,但是函数的退出状态仍然是0。所以,使用函数的默认退出状态是一种危险的做法。

     3.2  使用return命令

    bash shell使用return命令以特定退出函数。return命令可以使用单个整数值来定义函数退出状态,提供一种通过编程设置函数退出状态的简单方法。
    使用这种方法返回数据时,必须注意避免两个容易发生的错误:

    • 在函数完成后尽快提取返回值
    • 退出状态的取值范围是0~255      

     

    如果想要返回更大的整数值或字符串,那么不要使用这种返回值方法。

     3.3  使用函数输出

    函数的输出也可以捕获并存放到shell变量中。

    • 这种方法可以从函数获取任意类型的输出并给出变量赋值:result=`db1`。这条命令将函数db1的输出赋予shell变量$resutl。
    • 这个方法也可以返回浮点数和字符串值,所以这种方法能够非常灵活地从函数返回数据。
     
    新函数result会用echo语句来显示计算的结果,获取dbl函数的输出,而不是查看退出状态码。
  • 相关阅读:
    struts2学习笔记一struts2标签学习
    Struts2常用标签总结
    Strtus2标签<s:url>
    com.mchange.v2.async.ThreadPoolAsynchronousRunner$DeadlockDetector@d3ade7 ,项目启动错误
    【异常处理】com.mchange.v2.async.ThreadPoolAsynchronousRunner$DeadlockDetector@390508 --&nb
    MyEclipse怎么导入导出项目
    struts2的s:iterator 标签 详解
    CSS中的Position属性
    用Iterator实现遍历集合
    ArrayList的toArray
  • 原文地址:https://www.cnblogs.com/yaoyaojcy/p/9258023.html
Copyright © 2020-2023  润新知