これはすでに議論されていますが、私はより異なる問題を抱えています。 パラメータとして[email protected]
を呼び出す必要がある関数があります。関数の出力をbashの変数に代入する方法は?
もし私がvar=$(function [email protected])
を置くと、私は関数が動作する行ごとにエラーを受け取るだけです。
一方私はworkaroudを使用:
- 私は最初の関数を呼び出し:
function [email protected]
- をそれから私は、関数から変数に結果を保存:
var=$?
でもあれば、これは単に作品関数の戻り値は "succes"または "fail"です。 考えていますか?
コード:
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 [email protected])
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
}
実際のコードと正確な(逐語的な)出力/エラーを表示してください。 – Mat
[最小限で完全で検証可能なサンプルの作成方法](http://stackoverflow.com/help/mcve)をご覧ください。 – Cyrus
ブッシュ関数は、成功または失敗以外は何も返すことができません。 http://m.linuxjournal.com/content/return-values-bash-functions –