sum()
{
return $(($1+$2))
}
read a b
sum $a $b
echo $?
当我们传递a = 255的值而b = 36时,ans将是35为什么?
答案 0 :(得分:1)
你要求shell返回值。
返回值不能超过255。
所以当你添加一个= 255和b = 36
时 a + b = 255 + 36 = 291
但因为它只能返回0-255之间的值。
你减去
result - return value = 291 - 256 (i.e the return value from 0-255) = 35.
因此您的返回值为35。
答案 1 :(得分:1)
正如大家所指出的,shell函数不能返回大于255的值。
从函数中获取值的常用方法是将它们存储在如下变量中:
#! /bin/sh
sum() {
local __res=$3
local res=$(($1 + $2))
eval $__res="'$res'"
}
sum 25000 5000 total
echo $total