Questions tagged «stderr»

程序通常使用标准错误输出流(stderr)来输出错误消息或诊断信息。

15
如何在Python中打印到stderr?
有几种写stderr的方法: # Note: this first one does not work in Python 3 print >> sys.stderr, "spam" sys.stderr.write("spam\n") os.write(2, b"spam\n") from __future__ import print_function print("spam", file=sys.stderr) 这似乎与zen的Python#13 †相矛盾,所以这里有什么区别,一种方法或另一种方法有什么优点或缺点?应该使用哪种方式? † 应该有一种(最好只有一种)明显的方式来做到这一点。

11
我如何用管道输送stderr而不是stdout?
我有一个要写入信息的程序stdout和stderr,我需要grep通过报应的标准错误,而忽视标准输出。 我当然可以分两步完成: command > /dev/null 2> temp.file grep 'something' temp.file 但我希望能够在没有临时文件的情况下执行此操作。有任何智能管道技巧吗?
981 bash  grep  stdout  pipe  stderr 

10
对stdin,stdout和stderr感到困惑?
我对这三个文件的目的感到困惑。如果我的理解是正确的,stdin则是程序在其中写入其在进程中运行任务的请求stdout的文件,是内核在其中写入其输出以及请求其从中访问信息的进程stderr的文件,并且是该文件。输入所有例外。在打开这些文件以检查它们是否确实发生时,我发现似乎没有任何暗示! 我想知道的是这些文件的目的是什么,用很少的技术术语就完全可以解决问题了!
230 linux  stdout  stdin  stderr 

18
如何在变量中存储标准错误
假设我有一个类似以下的脚本: 无用的 echo "This Is Error" 1>&2 echo "This Is Output" 我还有另一个shell脚本: AlsoUseless.sh ./useless.sh | sed 's/Output/Useless/' 我想从useless.sh中捕获“ This Is Error”或任何其他stderr到变量中。我们称它为ERROR。 请注意,我正在使用stdout做某事。我想继续使用stdout,因此在这种情况下,将stderr重定向到stdout并没有帮助。 所以,基本上,我想做 ./useless.sh 2> $ERROR | ... 但这显然行不通。 我也知道我能做 ./useless.sh 2> /tmp/Error ERROR=`cat /tmp/Error` 但这是丑陋且不必要的。 不幸的是,如果没有答案,这就是我要做的。 我希望有另一种方式。 有人有更好的主意吗?

2
在bash中同时输出stdout和stderr?
似乎较新版本的bash具有&>运算符,(如果我理解正确的话)该运算符会将stdout和stderr都重定向到文件(&>>如Adrian所阐明的那样,追加到文件中)。 实现同一目标的最简单方法是什么,而是通过管道传递到另一个命令? 例如,在这一行: cmd-doesnt-respect-difference-between-stdout-and-stderr | grep -i SomeError 我希望grep可以匹配stdout和stderr中的内容(有效地,将它们组合成一个流)。 注意:这个问题是在询问管道,而不是重定向-因此,它不是当前标记为重复的问题的重复。
156 bash  stdout  stderr  piping 

5
使用bash,如何将标准错误传递到另一个进程?
众所周知,如何将一个流程的标准输出传送到另一个流程的标准输入中: proc1 | proc2 但是,如果我想将proc1的标准错误发送到proc2并将标准输出留到当前位置怎么办?您可能会想到bash以下命令: proc1 2| proc2 但是,a,不。有什么办法吗?
137 bash  pipe  stderr 


6
如何在C中打印到stderr?
在C中,使用printffrom 可以很容易地打印到标准输出stdio.h。 但是,如何打印到stderr?我们fprintf显然可以使用它来实现,但是它的语法似乎很奇怪。也许我们可以printf用来打印到stderr?
119 c  printf  stderr 



7
使用子流程时如何在python中复制tee行为?
我正在寻找一种Python解决方案,该解决方案将允许我将命令的输出保存到文件中而不将其从控制台隐藏。 仅供参考:我想问的是tee(作为Unix命令行实用程序),而不是Python intertools模块中的同名函数。 细节 Python解决方案(不调用tee,在Windows下不可用) 我不需要为调用的进程提供任何输入到stdin 我无法控制被调用的程序。我所知道的是,它将向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 当前代码(第二次尝试) #!/usr/bin/python from __future__ import print_function import sys, os, time, subprocess, io, threading cmd = "python -E test_output.py" from threading import Thread class StreamThread ( Thread ): def __init__(self, buffer): …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.