前言
函數可以讓我們將一個複雜功能劃分成若干模塊,讓程序結構更加清晰,代碼重複利用率更高。
Shell 獲取返回值,有兩種方式。一種是通過return返回某個數字,一種是通過echo間接的拿到函數處理的結果。
獲取return返回值
- bash函數本身不能是字符串類型,bash函數的最後一句或者中間某句可以是return N,只能返回整數,一般0代表成功,非0意味着失敗,你也自己可以規定返回什麼值——代表什麼意思等等。bash函數中沒有return的話,函數中最後一條命令的退出狀態碼(一般0代表成功,非0意味着失敗,127代表命令沒找到,command not found)將作爲整個函數的返回值。 如果return返回一個非數字的話,就會報“-bash: return: 需要數字參數”異常
- 使用$?接收上一程序的返回值狀態,也就是return的值
- 代碼(代碼可直接copy到shell裏測試結果)
function foo(){ return 11; } foo result=$? echo ${result}
通過echo返回一個任意值
- 在函數最後使用echo打印一個值,在調用該函數的地方,可以通過$(function_name)把結果傳給一個新的變量,也就獲取了函數的處理結果
- 代碼(代碼可直接copy到shell裏測試結果)
function foo(){ echo $1; } result=$(foo 33);echo result is ${result}