问题标签 [tee]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
bash - bash:将标准输出和标准错误重定向(并附加)到文件和终端并获得正确的退出状态
要将 stdout 和 stderr 重定向(并附加)到文件,同时在终端上显示它,我这样做:
但是,是否有另一种方法可以让我获得退出状态的准确值?
也就是说,如果我测试$?
,我想查看 的退出状态command
,而不是 的退出状态tee
。
我知道我可以${PIPESTATUS[0]}
在这里使用而不是$?
,但我正在寻找另一种不需要检查的解决方案PIPESTATUS
。
shell - 展示 bash shell stdout/stderr 重定向行为的备忘单
是否有一个很好的备忘单来展示 BASH shell 重定向的多种用途?我很想把这样的东西送给我的学生。我希望看到的一些示例:
(或者我们可以把它变成一个社区维基并在这里列举这些东西)
谢谢!
SetJmp
unix - Unix 和 tee — 命令链
在 Unix 环境中,我想使用tee
如下命令链:
为什么file
最终只有最终命令的输出?
出于讨论的目的,假设我不能将它们分开并单独运行命令。
python - 使用子进程时如何在 Python 中复制 tee 行为?
我正在寻找一种 Python 解决方案,它允许我将命令的输出保存在文件中,而不会将其隐藏在控制台中。
仅供参考:我问的是tee(作为 Unix 命令行实用程序),而不是 Python intertools 模块中同名的函数。
细节
- Python解决方案(不调用
tee
,Windows下不可用) - 我不需要为被调用进程向标准输入提供任何输入
- 我无法控制被调用的程序。我所知道的是它会输出一些东西到 stdout 和 stderr 并返回一个退出代码。
- 调用外部程序(子进程)时工作
- 为双方
stderr
工作stdout
- 能够区分 stdout 和 stderr 因为我可能只想向控制台显示其中一个,或者我可以尝试使用不同的颜色输出 stderr - 这意味着这
stderr = subprocess.STDOUT
将不起作用。 - 实时输出(渐进式) - 该过程可以运行很长时间,我无法等待它完成。
- Python 3 兼容代码(重要)
参考
以下是我目前发现的一些不完整的解决方案:
- http://devlishgenius.blogspot.com/2008/10/logging-in-real-time-in-python.html(mkfifo仅适用于 Unix)
- http://blog.kagesenshi.org/2008/02/teeing-python-subprocesspopen-output.html(根本不起作用)
图 http://blog.i18n.ro/wp-content/uploads/2010/06/Drawing_tee_py.png
当前代码(第二次尝试)
实际输出预期的输出是对行进行排序。备注,修改 Popen 以仅使用一个 PIPE 是不允许的,因为在现实生活中我会想用 stderr 和 stdout 做不同的事情。
同样,即使在第二种情况下,我也无法获得实时的输出,实际上所有结果都是在过程完成时收到的。默认情况下,Popen 不应该使用缓冲区(bufsize=0)。
linux - tee 打印到标准输出的顺序是否得到保证?
可以tee
在linux下使用命令拆分管道,如下
printf "line1\nline2\nline3\n" | tee >(wc -l ) | (awk '{print "this is awk: "$0}')
产生输出
我的问题是,打印顺序是否有保证?计算行数的tee
拆分管道是否总是在最后打印?有没有办法总是在开始时打印它?还是tee
无法保证打印的顺序?
perl - Perl,重定向标准输出但保持父级
在 perl 中,在fork()
ing 之后我可以将孩子的标准输出重定向到这样的文件
我想知道是否有一种“复制它”的方法,将标准输出保留在父标准输出上,但也复制到指定的文件。它应该以不需要任何缓冲的方式发生,并且用户将实时看到控制台输出。这有点像 unix tee
。但理想情况下,该解决方案不会涉及任何第三方库。
php - 为什么 fgets(STDIN, 1024) 不再工作了?
问题 1
我曾经将该行用于我的游戏服务器的 PHP 解析器文件,但它不再工作了。我知道有这样的fopen("php://stdin")
东西,但现在是 3 行代码而不是只有 1 行,为什么 PHP 会这样做?
问题2
另外,当我使用该方法时,我不断得到这个输出,这导致我的脚本无法读取解析器输出的命令,我该如何停止它?
我尝试将 Content-Type 设置为 text/plain 并没有做任何事情......
这是基本代码:
我正在使用尾部来保持将行发布到进入 PHP 解析器的文件中,然后将解析后的输出通过 tee 发送到另一个命令文件。
c - 使用单个函数调用写入多个文件描述符
我有一个群聊服务器的用例,服务器必须向所有客户端的套接字写入一个公共字符串。然后我通过遍历文件描述符列表并将字符串写入每个文件描述符来解决这个问题。
现在我正在考虑找到更好的解决方案。是否可以通过在 linux 中使用 tee 系统调用从服务器调用单个函数来执行此操作。我希望一个 tee 的输出也可以到下一个 tee 以及客户端套接字。我想知道是否可以将 tee 一端的文件描述符复制到客户端套接字并获得所需的效果。
请为您知道的用例建议任何其他实现。
谢谢
stdout - Inspect stdout from the middle of chained apps
Consider this example chain:
I'd like to inspect the contents stdout of the second grep as well as the resulting stdout:
So I need a tool, UNKNOWN, that for instance dumps the contents of stdout to a file and also passes stdout along the chain.
Does the tool, UNKNOWN, exists (both Windows and Linux answers are relevant) ?