问题标签 [stderr]

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.

0 投票
2 回答
129 浏览

java - 捕获和修改从外部 JAR 发送的 stderr

有没有办法让我截取从外部 JAR 文件中使用的 STDERR 流?

我的情况是我有自己的程序,将 STDERR 用于 XYZ,还有一个外部 JAR,将 STDERR 用于 ABC。我想将两者合并,以便为最终用户正确格式化,但我无法弄清楚如何捕获重定向或(正确的术语是什么?)JAR 的 STDERR?

谢谢,

0 投票
1 回答
3093 浏览

exec - tcl exec 先读取标准输出然后读取标准错误?

我发现 tcl exec 命令首先从标准输出返回字符串,然后是标准错误。例如,我的以下“测试脚本”按此顺序生成消息:

然后我像这样执行脚本:

我从 $msg 得到的是:

这真的让我很难得到正确的结果。

有人可以让我们知道是否可以按顺序从 stdout 和 stderr 获取消息,并且:

1)请不要像这样重定向,这确实可以让它们井然有序:

2)我必须在我的tcl 脚本中调用那个tcl脚本,对不起

3) 我也不能直接获取 .tcl 测试脚本,因为两者之间还调用了其他脚本,如果我的 tcl 脚本只是获取tcl 脚本,它将无法工作。

我正在使用 tclsh 8.3

不确定这是否要求太多。我希望有人能解决这个问题。谢谢。

0 投票
2 回答
9855 浏览

bash - bash 变量分别捕获 stderr 和 stdout 或获取退出值

我需要在我的 bash 脚本中捕获命令的输出和错误,并知道该命令是否成功。

目前,我正在像这样捕获两者:

然后我需要检查 mycommand 的退出值。如果失败,我需要对输出做一些事情,如果命令成功,我不需要触摸输出。

由于我正在捕获输出,因此检查 $? 始终为 0,因为 bash 成功地将输出捕获到变量中。

这是一个对时间非常敏感的脚本,因此我们试图避免任何较慢的解决方案,例如输出到文件并重新读取它。

如果我可以将 stdout 捕获到一个变量并将 stderr 捕获到另一个变量,那将解决我的问题,因为我可以检查错误变量是否为空。

谢谢。

0 投票
1 回答
1879 浏览

jetty - 从码头到标准错误的神秘控制台输出?

运行我的嵌入式码头网络应用程序启动器时,我看到以下输出到 stderr。在将我的构建移动到 maven-2 后,我才开始看到这一点。有没有人见过这个?

它偶尔似乎在随机时间重复。

0 投票
7 回答
53279 浏览

c++ - 如何使用 googletest 捕获标准输出/标准错误?

使用googletest框架时是否可以捕获标准输出和标准错误?

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

或者,也许我想测试错误行为并想要断言当我(故意)产生错误时会打印某个字符串。

0 投票
3 回答
535 浏览

linux - PHP 的 proc_open()、proc_close() 等的 Perl 等价物是什么?

使用 PHP proc_open(),我可以启动一个进程,在进程运行时一次读取STDOUTSTDERR(单独)任意数量的字节fread(),检测进程何时完成使用feof()STDOUT管道STDERR,然后用于proc_close()获取退出代码的过程。我已经在 PHP 中完成了所有这些工作。它运作良好,并给了我很多控制权。

有没有办法在 Perl 中完成所有这些事情?总而言之,我需要能够做到以下几点:

  • 启动外部进程
  • 单独阅读STDOUT_STDERR
  • 在进程运行时一次读取STDOUTSTDERR任意数量的字节(即无需等待进程完成)
  • 检测进程何时完成
  • 获取进程的退出码

提前感谢您的回答。

0 投票
5 回答
1037 浏览

c++ - 是否应该将 GUI 应用程序警告消息发送到 std::cerr?

应该将 Unix GUI 应用程序的警告发送到 std::cerr 还是 std::cout?

这假定 GUI 通常在控制台窗口中显示警告和错误,并将它们发送到日志文件。但是,如果控制台丢失,因此无法使用 std::cerr、std::cout 或 std::clog 是否应该用于此类消息?

我在想 std::cerr 是他们所属的地方。

0 投票
1 回答
160 浏览

java - java 新进程 - 从 ErrorStreams 和 Output 流中获取和读取是必需的

我使用 ProcessBuilder 从 java 代码创建新进程

在这种情况下,我对查看错误/输出不感兴趣。是不是一定要抓OutputStream和ErrorStream?它会自动忽略吗?

输出可能很大(10MB)——在某些情况下。

0 投票
1 回答
3431 浏览

linux - bash 重定向 stdout 和 stderr 以通过 ssh 分隔命令

我正在使用 BASH 4。我正在尝试找到一种方法来合法地预先设置输出以指示它的输出类型。我可以用这样的东西来做到这一点......

当我通过 SSH 登录并以交互方式运行它时,这似乎可以解决问题。但是,如果我尝试通过 ssh 将命令作为远程命令运行,并且命令用引号引起来,这并不总是正确的。我总能得到标准输出线,但有时不能得到标准错误线。

这将产生输出...

这甚至不会产生错误消息...

但是,这将 wget 状态结果显示为 stderr 结果(它应该)

0 投票
3 回答
6353 浏览

bash - 如何重定向写入 tty 的程序?

这是未重定向的输出(如果您不知道是什么module,则无关紧要):

假设我想将它重定向到一个文件....

嗯,应该在stderr

嘿!它正在重置我的重定向。这真的很烦人,我有两个问题:

  1. 我怎样才能实现我想要的,即将所有内容重定向到我的文件中
  2. 他们为什么要做这么奇怪的事情?

另请参阅相关问题。

编辑:有人在评论中询问,所以有一些细节。这是在 64 位的 AIX 5.3 上。我的 python 2.6.5 几乎完全可用。我同时拥有 gcc 4.1.1 和 gcc 4.5.1,但链接它们的库并不多(util-linux-ng 库,其中包含答案中提到的脚本版本,无法为 getopt 部分编译)。我也有几个版本的 IBM XL 编译器 xlc。我一开始没有指定的原因是我希望在一些 shell 技巧中,也许使用 exec,而不是在外部程序中。