相关疑难解决方法(0)

IO重定向 - 交换stdout和stderr

给出一个shell脚本:

#!/bin/sh

echo "I'm stdout";
echo "I'm stderr" >&2;
Run Code Online (Sandbox Code Playgroud)

有没有办法调用该脚本,只有stderr打印出来,当命令的最后一部分是2>/dev/null时,即

$ > sh myscript.sh SOME_OPTIONS_HERE 2>/dev/null
I'm stderr
Run Code Online (Sandbox Code Playgroud)

或者,或者:

$ > sh myscript.sh SOME_OPTIONS_HERE >/dev/null
I'm stdout
Run Code Online (Sandbox Code Playgroud)

在一组演讲幻灯片结束时这是一个问题,但经过将近一天的工作,我几乎可以肯定它是某种错字.透视不起作用.2>& - 不起作用.我没有想法!

shell sh io-redirection

32
推荐指数
4
解决办法
7646
查看次数

有没有办法将只有stderr重定向到stdout(不合并两个)所以它可以通过管道传输到其他程序?

我正在Windows CMD.EXE环境中工作,并希望更改输出stdout以匹配,stderr以便我可以将错误消息传递给其他程序,而无需文件的中介.

我知道的2>&1符号,而是结合stdoutstderr成一个单一的数据流.

我在想的是这样的:

program.exe 2>&1 | find " "
Run Code Online (Sandbox Code Playgroud)

但这结合了stdout和stderr就像:

program.exe | find " " 2>&1
Run Code Online (Sandbox Code Playgroud)

我意识到我能做到......

program 2>file
type file | find " "
del file
Run Code Online (Sandbox Code Playgroud)

但这并不具备program | find " "某种符号的灵活性和强大功能.这样做需要program在输出完成之前完成输出.

windows batch-file

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

标签 统计

batch-file ×1

io-redirection ×1

sh ×1

shell ×1

windows ×1