标签: stderr

Ruby中$ stdout和STDOUT之间的区别

在Ruby中,$stdout(以美元符号开头)和STDOUT(在所有大写字母中)之间有什么区别?在进行输出重定向时,应该使用哪个以及为什么?这同样适用于$stderrSTDERR.

编辑:刚刚找到一个相关的问题.

ruby stdout stderr output-redirect

87
推荐指数
3
解决办法
3万
查看次数

Python:运行os.system后如何获取stdout?

我希望stdout在运行os.system调用后获取变量.

让我们以此行为例:

batcmd="dir"
result = os.system(batcmd)
Run Code Online (Sandbox Code Playgroud)

result将包含错误代码(stderr 0在Windows下或1在某些linux下用于上面的示例).

如何stdout在执行的命令中不使用重定向来获取上述命令?

python os.system stdout stderr python-2.7

79
推荐指数
6
解决办法
16万
查看次数

在Linux上使用Bash将所有输出重定向到文件?

我试图将命令行程序的所有输出重定向到文件.我正在使用Bash.一些输出被定向到文件,但是一些仍然出现在终端中并且不存储到文件中.

这里描述了类似的症状:

将所有输出重定向到文件

但是我尝试了所提出的解决方案(捕获stderr)但没有成功:

<cmd> <args> > stdout.txt 2> stderr.txt
Run Code Online (Sandbox Code Playgroud)

文件stderr.txt已创建但为空.

可能的线索是命令行程序是与同一台机器上的服务器通信的客户端.可能有些输出来自服务器.

有没有办法捕获终端的所有输出,无论其来源如何?

编辑:

我已经确认缺少的输出是由服务器生成的.在单独的终端中运行命令会在两个终端中产生一些输出,我可以将命令终端的所有输出传输到文件.这引发了有关如何捕获服务器输出的问题,但这是一个不同的问题.

linux bash stdout stderr

71
推荐指数
5
解决办法
11万
查看次数

使用子进程时如何在Python中复制tee行为?

我正在寻找一种Python解决方案,它允许我将命令的输出保存在文件中,而不会将其从控制台中隐藏.

仅供参考:我问的是tee(作为Unix命令行实用程序)而不是Python intertools模块中具有相同名称的函数.

细节

  • Python解决方案(不调用tee,在Windows下不可用)
  • 我不需要为被调用进程的stdin提供任何输入
  • 我无法控制被叫程序.我所知道的是它会向stdout和stderr输出一些内容并返回退出代码.
  • 在调用外部程序时工作(子进程)
  • 为两者stderr而努力stdout
  • 能够区分stdout和stderr,因为我可能只想显示一个控制台,或者我可以尝试使用不同的颜色输出stderr - 这意味着stderr = subprocess.STDOUT不起作用.
  • 实时输出(渐进式) - 该过程可以运行很长时间,我无法等待它完成.
  • Python 3兼容代码(重要)

参考

以下是我发现的一些不完整的解决方案:

图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):
        Thread.__init__(self)
        self.buffer = buffer
    def run ( self ):
        while 1:
            line = self.buffer.readline()
            print(line,end="") …
Run Code Online (Sandbox Code Playgroud)

python subprocess stdout stderr tee

64
推荐指数
4
解决办法
2万
查看次数

暂时重定向stdout/stderr

是否可以在Python中暂时重定向stdout/stderr(即在方法的持续时间内)?

编辑:

当前解决方案(我最初记得但后来忘记了)的问题在于它们没有重定向 ; 相反,他们只是完整地替换了流.因此,如果一个方法有一个本地副本,一个变量的任何原因(例如,由于流被作为参数传递的东西),它不会工作.

有解决方案吗

python redirect stdout stderr

55
推荐指数
5
解决办法
6万
查看次数

将stdout/stderr重定向到字符串

以前有很多关于将stdout/stderr重定向到文件的问题.有没有办法将stdout/stderr重定向到字符串?

c c++ stdout stderr

52
推荐指数
5
解决办法
6万
查看次数

你如何在R中打印到stderr?

你如何打印到stderrR

这对于编写的脚本特别有用Rscript.

printing r stderr

49
推荐指数
5
解决办法
3万
查看次数

Exec()之后的PHP StdErr

在PHP中,我正在使用exec()执行命令,如果成功了URL则返回;

$url = exec('report');
Run Code Online (Sandbox Code Playgroud)

但是,如果出现问题,我想检查stderr.我怎么读这个流?我想使用php:// stderr,但我不知道如何使用它.

php exec stderr

49
推荐指数
5
解决办法
2万
查看次数

Bash脚本 - 将stderr存储在变量中

我正在编写一个备份数据库的脚本.我有以下几行:

mysqldump --user=$dbuser --password=$dbpswd  \
   --host=$host $mysqldb | gzip > $filename
Run Code Online (Sandbox Code Playgroud)

我想将stderr分配给一个变量,这样它就会向我发送一封电子邮件,让我知道如果出现问题会发生什么.我找到了将stderr重定向到stdout的解决方案,但我不能这样做,因为stdout已经被发送(通过gzip)到一个文件.如何在变量$ result中单独存储stderr?

bash scripting redirect stdout stderr

48
推荐指数
3
解决办法
6万
查看次数

如何使用googletest捕获stdout/stderr?

使用googletest框架时是否可以捕获stdout和stderr ?

例如,我想调用一个将错误写入控制台(stderr)的函数.现在,在测试中调用函数时,我想断言那里没有输出.

或者,也许我想测试错误行为,并希望在我(故意)产生错误时断言某个字符串被打印.

c++ unit-testing stdout googletest stderr

44
推荐指数
3
解决办法
3万
查看次数