一、使用$?獲取函數的返回值
function myfunc(){
# code ...
return 1
}
myfunc
echo $? # 輸出1
當函數執行完成後,可以使用$?獲取函數的返回值,$?為shell特殊變數,表示上一個命令或函數的返回值。在函數中使用return語句返回一個整數類型的值,通過$?獲取函數的返回值。在上面的代碼中,myfunc函數返回1,通過echo $?輸出。
二、使用變數獲取函數的返回值
function myfunc(){
# code ...
echo 1
}
result=$(myfunc) # $(...)是命令替換,將函數的輸出賦值給變數result
echo $result # 輸出1
除了使用$?外,也可以通過命令替換將函數的輸出賦值給一個變數。在上面的代碼中,將myfunc函數的輸出賦值給result變數,通過echo $result輸出。
三、使用全局變數獲取函數的返回值
function myfunc(){
# code ...
RETVAL=1
}
myfunc
echo $RETVAL # 輸出1
除了將函數的輸出賦值給一個局部變數外,也可以使用全局變數來獲取函數的返回值。在上面的代碼中,myfunc函數中將1賦值給全局變數RETVAL,在函數執行完成後,通過echo $RETVAL輸出。
四、小結
在shell中獲取函數的返回值,可以使用$?特殊變數、變數賦值、全局變數等方法來獲取。具體選擇哪種方法取決於使用場景。在實際使用中,建議使用命令替換或全局變數來獲取函數的返回值,避免可能存在的變數覆蓋或命名衝突問題。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/195682.html