• Linux-Shell脚本编程-学习-8-函数


    在这章往后的学习中,我讲尽可能详细的讲书中讲到的都记录到这里,以便以后方便查看。

    什么是函数,函数就是一段代码,这段代码可以在我们需要的位置调用,那么这段代码就叫做函数。

    在Shell中,定义一个函数有两种方法。

    1. 使用关键字 function

    function name

    {

    }

    #!/bin/bash
    
    function func1
    {
            echo " this is a function"
    
    }
    
    count=1
    while [ $count -le 5 ]
    do
            func1
            count=$[$count +1 ]
    done
    echo " the loop end"


    这种方式有种Shell 的感觉,那么第二种就有一种我们普通常见的函数的感觉了

    name()

    {

    }

    #!/bin/bash
    
    function func1
    {
            echo " this is a function"
    
    }
    func2()
    {
            echo " this is the function two"
    }
    
    
    count=1
    while [ $count -le 5 ]
    do
            func1
            func2
            count=$[$count +1 ]
    done
    echo " the loop end"
    


    这里在定义函数的时候要注意,如果我们在定义函数前使用了函数。那么就会提示我们找不到这个命令了

    #!/bin/bash
    
    function func1
    {
            echo " this is a function"
    
    }
    
    
    count=1
    while [ $count -le 5 ]
    do
            func1
            func2
            count=$[$count +1 ]
    done
    func2()
    {
            echo " this is the function two"
    }
    echo " the loop end"
    

    如果是这样的话,那么func2就会报错了



    #!/bin/bash
    
    function func1
    {
            echo " this is a function"
    
    }
    
    
    func1()
    {
            echo " this is the recover function"
    }
    
    
    count=1
    while [ $count -le 5 ]
    do
            func1
            count=$[$count +1 ]
    done
    echo " the loop end"


    这样,我们的函数1就会被覆盖,所在Shell脚本中定义函数的时候一定要注意名字的唯一性

    和我们普通编程一样,Shell脚本中的函数也可以有返回值,bash shell会把函数当做一个小型的脚本,运行结束时会返回一个退出状态码。有三种不同的方法可以来为函数生成退出状态码

    1. 使用默认的退出状态码

    默认的状态码是函数中最后一条命令返回的退出状态码。在函数结束后,使用标准的$?变量来决定函数的退出状态码

    #!/bin/bash
    
    function func1
    {
            echo " this is a function"
    
    }
    
    
    func1()
    {
            echo " this is the recover function"
    }
    
    
    count=1
    while [ $count -le 5 ]
    do
            func1
            echo " the function exit status is: " $?
            count=$[$count +1 ]
    done
    echo " the loop end"
    


    2. 使用return来返回

    #!/bin/bash
    
    function func1
    {
            value=88
            echo " this is a function"
            return $value
    }
    
    :<<!
    func1()
    {
            echo " this is the recover function"
    }
    !
    
    count=1
    while [ $count -le 5 ]
    do
            func1
            echo " the function exit status is: " $?
            count=$[$count +1 ]
    done
    echo " the loop end"
    


    不过这个的不好支持就在于这里返回的状态码只能是0-255

    要向返自己的内容,就需要用到第三种方式

    文本输出 echo

    这里就不哔哔了,今天先到这。等有时间在看

    后面是在函数中使用变量了

  • 相关阅读:
    centos7.0 没有netstat 命令问题
    Linux系统下安装rz/sz命令及使用说明
    怎样查看linux版本
    MongoDB 的 GridFS 详细分析
    MongoDb的bin目录下文件mongod,mongo,mongostat命令的说明及使用
    MongoDB基本使用
    安装concrete时提示“...database does not support InnoDB database tables..."如何解决
    最近开始研究PMD(一款采用BSD协议发布的Java程序代码检查工具)
    如何利用论坛做推广 | 一个每天可以吸引50粉丝的推广思路
    那些高阅读量文章的标题都是怎么取的?14种模板直接套用
  • 原文地址:https://www.cnblogs.com/DreamDog/p/9160074.html
Copyright © 2020-2023  润新知