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



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章