<分区>
$ function sum()
> {
> echo $1 $2;
> return $(($1+$2))
> }
$ sum 1 2
1 2
$ x=$(sum 1 2)
$ echo $x
1 2
我真的希望 $x 为 3。但它似乎仍然是“echo ”结果。如何修复我的功能?
<分区>
$ function sum()
> {
> echo $1 $2;
> return $(($1+$2))
> }
$ sum 1 2
1 2
$ x=$(sum 1 2)
$ echo $x
1 2
我真的希望 $x 为 3。但它似乎仍然是“echo ”结果。如何修复我的功能?
最佳答案
不要使用return
。只需将总和回显为:
sum() { echo $(($1 + $2)); }
然后将其用作:
x=$(sum 1 2)
echo $x
3
return
(或退出)函数的值在调用函数后使用 $?
捕获。但是,不推荐使用 return
,因为您只能在函数中返回 0-255 整数值。
关于linux - bash 函数未能给出返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42946045/