[英]How to assign the output of a function to a variable in bash?
已經討論過了,但是我還有一個不同的問題:我有一個函數,需要使用$@
作為參數來調用。
如果我把var=$(function $@)
放進去,我只會在函數執行的每一行收到錯誤。
同時,我使用了一個workaroud:
function $@
var=$?
但這僅在函數返回為“成功”或“失敗”的情況下有效。 有什么想法嗎?
碼:
function()
{
if [ $1 -gt $x ]
then
return 0
fi
if [ $1 -eq $x ]
then
return 1
fi
if [ $1 -lt $x ]
then
return 2
fi
}
我想將變量0,1或2存儲在其中。為此:
menu ()
{
if [ $# -gt 5 ] || [ $# -lt 1 ]
then
echo "Error! Script is: " $0
return
fi
echo "Insert reference number: "
read x
while [ $# -gt 0 ]
do
rez=$(function $@)
if [ $rez -eq 0 ]
then
echo "Nr >!" $1
fi
if [ $rez -eq 1 ]
then
echo "Nr =!" $1
fi
if [ $rez -eq 2 ]
then
echo "Nr <!" $1
fi
shift
done
}
也許使用elif
這樣您就不會收到返回的多個值(也可以使用case語句是一個更好的解決方案)。
var=$(function $@ >/dev/null 2>&1; echo $?)
應該相信嗎?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.