gpt4 book ai didi

linux - 如何将输出通过管道传输到 stdout 和 docker 中的另一个进程

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:04:10 25 4
gpt4 key购买 nike

我想通过管道传输在 docker 容器内运行的程序的标准输出,同时将输出保存在 docker 日志(即 stdout)中。

另一个 stackoverflow 问题 ( How to pipe stdout while keeping it on screen ? (and not to a output file) ) 建议使用 foo | tee/dev/tty | bar,但是当 docker 在非交互模式下运行时这不起作用,因为 /dev/tty 不存在。

这可能吗?

最佳答案

您想复制一个名为 foo 的程序的标准输出,以将其输出到您的脚本标准输出上,并将其通过管道传输到另一个名为 bar 的程序。这正是tee是为了。

foo | tee >(bar)

如果您没有支持进程替换的 shell,您可以通过创建一个 fifo 并在后台运行 cat $fifo 并运行 太“$fifo” 将流复制到 stdout 和 fifo:

fifo=$(mktemp -u); mkfifo $fifo;
cat "$fifo" &
foo | tee "$fifo" | bar

关于linux - 如何将输出通过管道传输到 stdout 和 docker 中的另一个进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51009180/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com