歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> 關於Linux

從bash函數中返回任意值

從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