有没有办法仅在给定的“超时”之后打印命令 stdout/stderr?

有没有办法仅在给定的“超时”之后打印命令 stdout/stderr?

想象一下,一个命令通常需要不到一秒钟就能完成,在这种情况下,您不想被详细的输出所困扰,但有时它需要更长的时间,在这种情况下,您希望打印一些可视状态。

例如,我经常做的一件事是docker build结合docker run

docker build -t foo ...   # usually terminates in < 1s, but sometimes takes minutes
docker run ... foo ...

其他示例可能涉及cp或任何其他命令,其输出只有在运行超过几秒钟时才有趣。

如果您对详细输出根本不感兴趣,那么您可以做的就是将其通过管道传输到/dev/null,更复杂的方法是记录输出并仅在出现问题时才打印它。

但是,是否有内置的 bash 方式来表示:运行命令 XY 并仅在出现错误时或命令运行超过$TIMEOUT几秒时显示输出?

喜欢

paranoid-quieten 2 docker build -t foo ...

或者可能

docker build -t foo ... | paranoid-quieten 2

我知道如何用这个编写一个 Python 脚本(虽然有点棘手)但是你该怎么做呢?

相关内容