【发布时间】:2018-07-06 07:47:21
【问题描述】:
我现在在 Bash 中编程,我使用 set -e,因为在程序失败时继续执行脚本几乎不是想要的行为。
如果不需要退出代码,我会使用||true。
如果我需要退出代码,我会像这样包装执行:
set +e
call_I_need_the_exit_code with few arguments
RV="$?"
set -e
# use "$RV" somewhat
但是,它很冗长,我很少切换 set +e 和 set -e 引入恼人的错误。
有没有办法制作一个函数来执行命令并为退出代码设置一个已知变量?
类似这样的东西(伪代码):
safe_call( call_I_need_the_exit_code(with, few, arguments) )
# use "$RV" somewhat
safe_call 基本上完成了前面的代码块。这将使我的代码更易于编写和阅读...
【问题讨论】:
-
显然“shell将最近执行的命令的退出值存储在变量'?' "
-
您最近的编辑没有任何意义。特别是,
A="es"只是一个不调用函数es的字符串赋值;并且您需要在右大括号之前使用换行符或分号。无论如何,您的问题应该仍然是一个严格的问题。请考虑回滚此编辑;如果您真的认为我的问题无法理解,请随时发布您自己的答案(如果您想澄清一些问题,请提交修改建议)。 -
真的很奇怪,我复制并粘贴了一个文件,那里肯定有反引号!编辑:反引号需要反斜杠。
-
不过,问题应该只是一个问题。如果您愿意,可以在下面的答案框中提交您自己的答案;但不应编辑您的问题以包含答案或切线评论。进一步查看help center,或者如果您需要进一步澄清堆栈溢出政策,请在Meta Stack Overflow 上发布单独的问题。
-
我回滚了你最近的编辑。如果您想将内容发布为答案,它们仍然可以在 revision history 中看到。