标签: stderr

如何在Ruby中临时重定向stderr?

我想暂时在一个块的持续时间内将stderr重定向到Ruby脚本中,确保在块结束时将其重置为原始值.

我很难在ruby文档中找到如何做到这一点.

ruby stderr

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

Bash如何将stderr捕获到变量?

Bash如何将stderr捕获到变量?

我想在我的bash脚本中做这样的事情

sh -c path/myExcecutable-bin 2>&1 =MYVARIABLE
Run Code Online (Sandbox Code Playgroud)

如何将stderror输出发送给变量?

bash stderr

43
推荐指数
1
解决办法
4万
查看次数

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

如何在PowerShell中写入标准错误?

我无法弄清楚如何回显标准错误流并重定向可执行文件的错误流.

我来自Bourne shellKorn shell背景,我将使用它;

# Write to stderr
echo "Error Message!" >&2

# Redirect stderr to file
/do/error 2>/tmp/err.msg
Run Code Online (Sandbox Code Playgroud)

powershell stderr powershell-2.0

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

在Bash中捕获stdout和stderr

我知道这个语法

var=`myscript.sh`
Run Code Online (Sandbox Code Playgroud)

要么

var=$(myscript.sh)
Run Code Online (Sandbox Code Playgroud)

将捕获结果(stdout)myscript.sh转化为var.我可以重定向stderrstdout,如果我想同时捕获.如何将它们中的每一个保存为单独的变量?

我在这里的用例是如果返回代码非零,我想要回显stderr并禁止其他方式.可能有其他方法可以做到这一点,但这种方法似乎可行,如果它实际上是可能的.

bash stdout pipe stream stderr

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

是否应在stdout或stderr上打印命令行"usage"?

打印应用程序的"用法"时,是应该在stdout还是stderr上完成?

根据应用程序,我看过几个案例,但似乎没有一个规则.也许我错了,有一个很好的做法.在那种情况下,它是什么?

command-line stdout stderr usage-message

40
推荐指数
2
解决办法
4359
查看次数

捕获程序stdout和stderr以分隔变量

是否有可能在一次运行中将stdout从外部程序重定向到外部程序的变量和stderr到另一个变量?

例如:

$global:ERRORS = @();
$global:PROGERR = @();

function test() {
    # Can we redirect errors to $PROGERR here, leaving stdout for $OUTPUT?
    $OUTPUT = (& myprogram.exe 'argv[0]', 'argv[1]');

    if ( $OUTPUT | select-string -Pattern "foo" ) {
        # do stuff
    } else {
        $global:ERRORS += "test(): oh noes! 'foo' missing!";
    }
}

test;
if ( @($global:ERRORS).length -gt 0 ) {
    Write-Host "Script specific error occurred";
    foreach ( $err in $global:ERRORS ) {
        $host.ui.WriteErrorLine("err: $err");
    }
} else {
    Write-Host …
Run Code Online (Sandbox Code Playgroud)

windows powershell command-line stdout stderr

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

STDERR.puts与Ruby中的put有什么不同?

我正在学习Programming Ruby 1.9中的语言,并且他们在本书的早期将STDERR.puts写入了一个代码块,而没有解释他们为什么使用它或者它与puts有什么不同.

我用谷歌搜索并解释了这个术语,但我从研究中得到的只是它涉及诊断.编程Ruby提供的代码中没有任何地方似乎存在错误异常处理的链接.

这是代码.

require_relative 'csv_reader'
reader = CsvReader.new
ARGV.each do |csv_file_name|
  STDERR.puts "Processing #{csv_file_name}"
  reader.read_in_csv_data(csv_file_name)
end
Run Code Online (Sandbox Code Playgroud)

我确实设法在某处读取STDERR.puts用于错误处理的约定,但我想我问它是否与puts有什么不同.

ruby stderr

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

将子流程stderr重定向到stdout

我想将子进程的stderr输出重定向到stdout.常数STDOUT应该这样做,不应该吗?

然而,

$ python >/dev/null -c 'import subprocess;\
                        subprocess.call(["ls", "/404"],stderr=subprocess.STDOUT)'
Run Code Online (Sandbox Code Playgroud)

输出的东西.为什么会这样,我如何在stdout上收到错误消息?

python subprocess stderr

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

bash:将stdout和stderr重定向(并追加)到文件和终端,并获得正确的退出状态

要将stdout和stderr重定向(并附加)到文件中,同时还在终端上显示它,我这样做:

command 2>&1 | tee -a file.txt
Run Code Online (Sandbox Code Playgroud)

但是,有没有其他方法可以做到这一点,以便我获得退出状态的准确值?

也就是说,如果我测试$?,我想看到退出状态command,而不是退出状态tee.

我知道我可以${PIPESTATUS[0]}在这里使用而不是$?,但我正在寻找另一种不需要检查的解决方案PIPESTATUS.

bash stdout stderr tee

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