我知道我可以将输出保存到一个变量然后打印它:
VAR=$(command)
echo "$VAR"
但这有很多缺点:
- 我不会看到命令的进度。
- 特别是,将看到所有
stdout
输出之后的所有stderr
输出,使其难以匹配它们。
- 特别是,将看到所有
- 由于这将导致在命令工作期间没有输出,因此在某些环境(如 Travis CI)中,如果命令工作足够长的时间,这将终止作业。
那么,如何保存输出并在控制台上实时查看呢?
- 便携式解决方案是可取的,尽管只有 Linux/MacOS 的解决方案可以在紧要关头做。
errexit
解决方案不应在模式中产生不良副作用