Shell 獲取函數的發回值

前言

函數可以讓我們將一個複雜功能劃分成若干模塊,讓程序結構更加清晰,代碼重複利用率更高。
Shell 獲取返回值,有兩種方式。一種是通過return返回某個數字,一種是通過echo間接的拿到函數處理的結果。

獲取return返回值

  1. bash函數本身不能是字符串類型,bash函數的最後一句或者中間某句可以是return N,只能返回整數,一般0代表成功,非0意味着失敗,你也自己可以規定返回什麼值——代表什麼意思等等。bash函數中沒有return的話,函數中最後一條命令的退出狀態碼(一般0代表成功,非0意味着失敗,127代表命令沒找到,command not found)將作爲整個函數的返回值。 如果return返回一個非數字的話,就會報“-bash: return: 需要數字參數”異常
  2. 使用$?接收上一程序的返回值狀態,也就是return的值
  3. 代碼(代碼可直接copy到shell裏測試結果)
    function foo(){ return 11; }
    foo
    result=$?
    echo ${result}
    

通過echo返回一個任意值

  1. 在函數最後使用echo打印一個值,在調用該函數的地方,可以通過$(function_name)把結果傳給一個新的變量,也就獲取了函數的處理結果
  2. 代碼(代碼可直接copy到shell裏測試結果)
    function foo(){ echo $1; }
    result=$(foo 33);echo result is ${result}
    
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章