我想我可以自己写这个
unrollme-dev-dan:~ Dan$ echo 'exit $@' > fail
unrollme-dev-dan:~ Dan$ chmod +x fail
unrollme-dev-dan:~ Dan$ ./fail 42
unrollme-dev-dan:~ Dan$ echo $?
42
是否有内置功能可以做到这一点? exit
当然不会起作用,因为它将退出当前进程,而不是创建子进程并退出。 test
是我发现只需将0
或1
作为返回代码的最简单方法。
与http://httpstat.us/类似,我需要对特定的错误代码进行单元测试。这对谷歌来说非常困难,因为大多数结果都是为了处理错误,而不是导致错误。
答案 0 :(得分:4)
您可以使用返回码轻松创建子进程并从中退出:
( exit 42 )
答案 1 :(得分:2)
在POSIX中似乎没有任何内置功能。如果有一个非标准的实用程序,我不知道它,但你可以只编写一个简单的shell函数,例如
fail() {
return $(( $1 ))
}
算术表达式防止非数字值。你可以写
a=6
fail a
并且您的退出状态为6.如果您刚刚写了return $1
,那么您将从shell中收到错误。