【发布时间】:2016-10-27 11:02:28
【问题描述】:
我有一个返回输入值的 bash 脚本方法。然而,返回值始终是模 256 的值。我搜索了一段时间,发现 this 文章说它总是模 256(我已经猜到了),但没有解释原因。有人能解释一下为什么会这样吗?
var=$1
hello () {
return $var
}
hello
ret=$?
echo $ret
>>> ./script 300
>>> 44
【问题讨论】:
-
或者更直接地说,POSIX Shell Command Langauge 规范的第 2.8.2 节,它引用了记录用于与
wait()函数一起使用的WEXITSTATUS()宏。后者明确表示它提供的退出状态是传递给exit()或_Exit()的值的低8 位。 -
return语句不打算将任意数据作为函数的返回值返回。 only 旨在设置一个字节的退出状态。 Shell 函数并不是通常意义上的函数 -
@gniourf_gniourf 等,感谢您的解释和链接。有人可以发布答案以便我接受它作为正确答案吗?谢谢。