歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> 關於Linux >> 從bash函數中返回任意值

從bash函數中返回任意值

日期:2017/3/1 17:01:47   编辑:關於Linux
從bash函數中返回任意值 Bash函數,不同於其他編程語言的函數,它更像一個子程序,即其返回值,只能是一個數字,以0表示成功,非0表示失敗。如果,在bash函數中想返回除了數字之外的值,有三種方法: www.2cto.com 1.假設我們想返回一個字符串,最簡單的方法是: Shell代碼 function myfunc() { myresult='the value' } myfunc echo $myresult 通過一個全局變量myresult,來保存返回值。使用全局變量,其缺點也是不言而喻的。 www.2cto.com 2.第二種方法: Shell代碼 function myfunc() { local myresult='some value' echo "$myresult" } result=$(myfunc) # or result=`myfunc` echo $result 將一個shell函數作為一個子程序調用,將返回值寫到子程序的標准輸出,來達到返回任意字符串的目的。 3.第三種方法: Shell代碼 function myfunc() { local __resultvar=$1 local myresult='some value' eval $__resultvar="'$myresult'" } myfunc result echo $result 這種方法,類似於C++中的通過引用返回函數值的做法。 www.2cto.com 另外,還可以結合後兩種方法: Shell代碼 function myfunc() { local __resultvar=$1 local myresult='some value' if [[ "$__resultvar" ]]; then eval $__resultvar="'$myresult'" else echo "$myresult" fi } myfunc result echo $result result2=$(myfunc) echo $result2 這樣,獲得了最大的靈活。
Copyright © Linux教程網 All Rights Reserved