我正在创建一个简单的Makefile,我在其中运行一个超时命令,在一段时间后中断实际命令。
timeout --preserve-status delay <command>
<next command>
但是,在执行Makefile时,它会在中断命令后抛出错误,而不是继续执行下一个命令。我正在使用
--preserve-status
为了避免错误,但不幸的是,这不起作用。 有没有人知道如何解决这个问题(也许类似于try-catch功能,我能够捕获错误)? 提前谢谢!
答案 0 :(得分:0)
timeout
命令在完成时将以命令状态退出。如果命令因超时命令导致命令退出,则返回状态可能会反映此情况(并且为非零)。因此,如果您预计会发生超时,那么您需要处理返回。您可以通过两种方式执行此操作:首先,您可以使用配方前面的-
,如gniorf_gniourf所述,或者您可以在配方末尾添加|| true
或等效物,将使配方始终返回成功:
foo:
timeout --preserve-status delay <command> || echo "timed out"