关于 Shell中函数的返回值 问题

# !/bin/shsum(){ echo $(($1+$2)) return $(($1-$2))}sum $1 $2c=$(sum $1 $2)echo $?echo $c执行命令:./bashTest 11 1运行结果是:12 —— sum $1 $2的结果10 —— echo $?的结果,因为return的值为1012 —— echo $c的结果,值为12,所以c并不会被附上return的值,echo $c时调用了sum函数,所以打印了12我们对shell中的返回值的理解有偏差,shell中的返回值一般指命令执行后的返回值,一般是命令执行成功返回0,执行失败返回1,,命令执行后,可以用echo $?查看返回值是多少,在本例子中,因为函数有return语句,则说明函数自己定义了一个返回值,可以通过echo $?查看这个返回值,c=$(sum $1 $2)的值并不等于return的值,说明shell中并没有像我们在C中定义函数时,如同c=abs(i,j)那样的返回值调用。有人说了这样的话:

基本明白了,那意思是说shell里的函数没有像其他语言一样将函数的返回值赋予给某个变量吗?如c=sum_test $1 $2echo $c

昵称: hxl 时间: 2010-06-09 10:34:00

回复hxl没有。。。。

昵称: lkk2003rty 时间: 2010-06-09 11:27:00

################ 以上来自@126/blog/static/44780245201062865644141/##################

正确方法:

function plus () { read -p "input number1:" number1 read -p "input number2:" number2 #echo $(($number1+$number2)) #两组括号的意思是做算术运算 echo `expr $number1 + $number2` }res=$(plus) echo "plus result is $res"

使用echo , 用res=$(plus) 调用和获取

每一件事与每一个美丽景色,都有可能成为一生中的难忘。

关于 Shell中函数的返回值 问题

相关文章:

你感兴趣的文章:

标签云: