为什么要使用+;=要存储命令';bash中的退出状态是什么?
最近,我在Bash脚本中遇到了这种模式:为什么要使用+;=要存储命令';bash中的退出状态是什么?,bash,exit-code,Bash,Exit Code,最近,我在Bash脚本中遇到了这种模式: function foo { declare -i status=0 # command(s) (( status += $? )) return $status 为什么有人会使用+=来保存退出状态(而不仅仅是状态=$?)?限制。这意味着您可以针对特定错误返回特定代码,例如: 0-无故障 1-IO异常 2-运行时异常 3-HD头部碰撞 等等 但是,如果您的应用程序由于多种原因崩溃,该怎么办?传达这一点的一种方法是返回一组退出代码,其工作
function foo {
declare -i status=0
# command(s)
(( status += $? ))
return $status
为什么有人会使用+=
来保存退出状态(而不仅仅是状态=$?
)?限制。这意味着您可以针对特定错误返回特定代码,例如:
0-无故障1-IO异常
2-运行时异常
3-HD头部碰撞
等等 但是,如果您的应用程序由于多种原因崩溃,该怎么办?传达这一点的一种方法是返回一组退出代码,其工作方式有点类似: 0-无故障
1-IO异常
2-运行时异常
4-HD头部碰撞 现在,如果你能对异常进行求和,那么求和会告诉你哪里出了问题: 3=1+2=IO异常+运行时异常
5=1+4=IO异常+HD头部崩溃
6=2+4=运行时异常+HD头部崩溃
7=1+2+4=IO异常+运行时异常+硬盘崩溃 这可能是它们返回一组退出代码的原因。限制。这意味着您可以针对特定错误返回特定代码,例如: 0-无故障
1-IO异常
2-运行时异常
3-HD头部碰撞
等等 但是,如果您的应用程序由于多种原因崩溃,该怎么办?传达这一点的一种方法是返回一组退出代码,其工作方式有点类似: 0-无故障
1-IO异常
2-运行时异常
4-HD头部碰撞 现在,如果你能对异常进行求和,那么求和会告诉你哪里出了问题: 3=1+2=IO异常+运行时异常
5=1+4=IO异常+HD头部崩溃
6=2+4=运行时异常+HD头部崩溃
7=1+2+4=IO异常+运行时异常+硬盘崩溃
这可能是他们返回一组退出代码的原因。这可以推测,但对我来说,作者的意图是将所有退出代码相加,然后返回此sum。这取决于上下文。e、 g.当
status=256
时,返回$status
与返回0
相同。因此,对所有退出代码求和并不总是有意义的。另一方面,如果上下文中的所有命令在某些条件下返回1,否则返回0,则foo
可以用作计数器。这是可以推测的,但对我来说,作者的意图是将所有退出代码相加,然后返回此sum。这取决于上下文。e、 g.当status=256
时,返回$status
与返回0
相同。因此,对所有退出代码求和并不总是有意义的。另一方面,如果上下文中的所有命令在某些条件下返回1,否则返回0,则foo
可以用作计数器。