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

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

函数返回值的问题

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的意义.



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值