shell编程基础【五】 ---函数

来源:互联网 发布:nginx 多server配置 编辑:程序博客网 时间:2024/05/23 22:11

--------------------------------------------------------

函数返回值的问题

1.默认的退出状态

函数的最后一条命令

返回退出状态

因为函数最后一条命令的状态可能会影响前面执行的状态

所以不建议使用

2.使用return

使用return 的致命问题是返回值不能超过255(0~255)

3.直接函数输出

相当于在最后加一个输出语句echo

 -----------------------------------------------------------------------------

函数中变量:全局变量,局部变量

       #!/bin/bash

        # 测试函数返回值

 

        function fun1() {

                echo "abcd"

                ls -l adasdfas

        }

 

        function fun2() {

                ls -l adasdfas

                echo "abcd"

        }

 

        echo "Test the fun1:"

        fun1

        echo "Function fun1 exit status: $?"

        echo "------------------------------------"

        echo "Test the fun2:"

        fun2

        echo "Function fun2 exit status: $?"

        

                

        一般不要这样做,这样做,函数最后一条命令,会掩盖函数中的其它错误

 

  2、使用return

        function fun3() {

                read -p "Enter a value: " value

                echo "Doubling the value"

                return $[$value*2]

        }

        

        return 返回值其范围是: 0-255

 

    3、函数输出(相当于在最后加一个输出语句)

        function fun4() {

                read -p "Enter a value: " value

                echo "Doubling the value: $[$value*2]"

        }

 

函数中变量:全局变量、局部变量 

        

    全局变量:在shell中都有效的变量,但有时在做函数时不经意间会修改了全局的值,

从而导致程序出现问题

        

    局部变量:一般来讲用在函数中

        使用方法:local 变量名

 

 

        函数中尽可能使用局部变量 

 

        注意:无论是函数内外声明的变量,都是全局变量!这点和c不同,

                c中,函数中的变量在调用函数结束后,其生命周期就结束了。

                而shell中,无乱在哪里声明的变量,都是全局生存的。

                这就是关键字local的意义.



原创粉丝点击