标签: stderr

管道命令链,每个输出状态到标准错误

我在 bash 脚本中有一系列管道命令,将标准输出管道到标准输入:

prog1 | prog2 | prog3
Run Code Online (Sandbox Code Playgroud)

他们每个人都输出一些标准错误。他们中的一些输出覆盖前一行,一些没有,有些两者都做:例如输出几行输出,然后在shell中有一个更新的“状态栏”。例如,curl 可以将下载进度输出为状态栏。

输出相当不清楚,因为状态栏可能会在一个进程的输出和另一个进程的输出之间闪烁。

有没有办法让各种输出更清晰,例如

  • 明确哪个输出行来自链中的哪个程序?
  • 让所有状态栏同时可见,不闪烁?

闪烁示例:

在此处输入图片说明

bash stdin stdout pipe stderr

20
推荐指数
2
解决办法
273
查看次数

Cron用STDERR发送电子邮件但不是STDOUT?

我有一些python脚本每天在cron中运行.如果我的脚本中出现STDERR OUTPUT,我怎么能让cron给我发电子邮件?我希望能够邮寄多个收件人,并为每个cron条目单独设置主题行.

我试过这个:

./prog > /dev/null | mail . . . 
Run Code Online (Sandbox Code Playgroud)

但它不起作用 - 当没有STDERR时我仍然收到空白的电子邮件.我是否需要在脚本本身中执行此操作?

对不起,如果这看起来很基本,我已经google了很多但似乎无法找到这个简单的回答.

email scripting cron stderr

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

如何在Python中重定向stderr?

我想记录Python脚本的所有输出.我试过了:

import sys

log = []

class writer(object):
    def write(self, data):
        log.append(data)

sys.stdout = writer()
sys.stderr = writer()
Run Code Online (Sandbox Code Playgroud)

现在,如果我"打印'某些东西'"它就会被记录下来.但是,如果我做了一些语法错误,比如说"打印'某些东西#",它就不会被记录 - 它将进入控制台.

我如何捕获Python解释器中的错误?

我看到了一个可能的解决方案:

http://www.velocityreviews.com/forums/showpost.php?p=1868822&postcount=3

但第二个例子登录到/ dev/null - 这不是我想要的.我想将它记录到像我上面的例子或StringIO这样的列表中......

另外,我最好不要创建子进程(并在单独的线程中读取它的stdout和stderr).

python redirect stderr

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

如何从Fabric的本地命令捕获stderr?

Fabric v1.4.3不捕获'python --version'的输出

def python_v():
    m = local('python --version', capture=True)
    print(m)
Run Code Online (Sandbox Code Playgroud)

python stderr fabric python-2.7

19
推荐指数
2
解决办法
6435
查看次数

了解stdin stdout stderr

我正在努力理解stdin stdoutstderr.

我看到它们一直用在人们的代码中,我无法完全理解它们是什么.我假设他们与输入/输出有关,但一直在网上寻找解释,但找不到.有没有人知道与解释的良好联系,或者它是否足够简单来解释它对我来说是一个很大的帮助.

因为我正在学习Python 3,所以这方面的例子会有所帮助.

stdin stdout stderr

19
推荐指数
1
解决办法
2万
查看次数

如何在Perl中运行外部命令并捕获其输出?

我是Perl的新手,想知道prg在以下场景中运行外部命令(调用它)的方法:

  1. prg,stdout只得到它.
  2. prg,stderr只得到它.
  3. 运行prg,得到了stdoutstderr,分别.

perl stdout stderr

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

Python日志记录在stdout和stderr之间分割

是否有可能将INFO或DEBUG的python日志消息转到stdout,使用WARNING或更高版本转到stderr?

python logging stderr

18
推荐指数
2
解决办法
1万
查看次数

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

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

目前,我正在捕捉这两个:

output=$(mycommand 2>&1)
Run Code Online (Sandbox Code Playgroud)

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

由于我正在捕获输出,检查$?因为bash成功地将输出捕获到变量中,所以总是为0.

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

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

谢谢.

variables bash stdout capture stderr

17
推荐指数
2
解决办法
9379
查看次数

如何在进程操作期间逐行捕获进程STDOUT和STDERR.(C#)

我将执行一个进程(lame.exe)将WAV文件编码为MP3.

我想处理进程的STDOUT和STDERR以显示进度信息.

我需要使用线程吗?我无法理解它.

一些简单的示例代码将不胜感激.

谢谢

c# stdout process stderr

17
推荐指数
3
解决办法
7284
查看次数

Shell重定向i/o命令

我正在玩i/o shell重定向.我试过的命令(在bash中):

ls -al *.xyz 2>&1 1> files.lst
Run Code Online (Sandbox Code Playgroud)

ls -al *.xyz 1> files.lst 2>&1
Run Code Online (Sandbox Code Playgroud)

*.xyz当前文件夹中没有任何文件.

这些命令给了我不同的结果.第一个命令ls: *.xyz: No such file or directory在屏幕上显示错误消息.但第二个将此错误消息打印到该文件.为什么第一个命令无法将错误的输出写入文件?

bash shell stdout stderr io-redirection

17
推荐指数
3
解决办法
4122
查看次数