日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

bash shell函数中返回任意值的四种方法

發(fā)布時間:2023/12/9 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 bash shell函数中返回任意值的四种方法 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

From: http://www.jbxue.com/article/11322.html

本文介紹下,在bash shell編程中,從函數(shù)中返回任意值的幾種方法,有需要的朋友參考下。

在bash中,函數(shù)更像一個子程序,即其返回值,只能是一個數(shù)字,以0表示成功,非0表示失敗。

在bash函數(shù)中,返回除了數(shù)字之外的值,有三種方法:

在bash shell編程中,假如想返回一個字符串,可以有如下的方法。

方法1,也是最簡單的方法:
?

復(fù)制代碼 代碼示例: function myfunc()?
{?
??? myresult='the value'?
}?
myfunc?
echo $myresult?

以上方法,通過一個全局變量myresult,來保存返回值。
?
方法2,子程序調(diào)用
?

復(fù)制代碼 代碼示例: function myfunc()?
{?
??? local? myresult='some value'?
??? echo "$myresult"?
}?
??
result=$(myfunc)?? # or result=`myfunc`?
echo $result?
?

以上方法,將一個shell函數(shù)作為一個子程序調(diào)用,將返回值寫到子程序的標(biāo)準(zhǔn)輸出,來達(dá)到返回任意字符串的目的。
?
方法3,通過引用返回函數(shù)值
?

復(fù)制代碼 代碼示例: function myfunc()?
{?
??? local? __resultvar=$1?
??? local? myresult='some value'?
??? eval $__resultvar="'$myresult'"?
}?
??
myfunc result?
echo $result?
?

有點類似于C++中的通過引用返回函數(shù)值的做法。

以下是結(jié)合后兩種方法的集大成,代碼如下:
?

復(fù)制代碼 代碼示例: 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

通過二者的結(jié)合,該方法的靈活性有了很大提高。


總結(jié)

以上是生活随笔為你收集整理的bash shell函数中返回任意值的四种方法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。