给出一个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>& - 不起作用.我没有想法!
我正在Windows CMD.EXE环境中工作,并希望更改输出stdout以匹配,stderr以便我可以将错误消息传递给其他程序,而无需文件的中介.
我知道的2>&1符号,而是结合stdout并stderr成一个单一的数据流.
我在想的是这样的:
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在输出完成之前完成输出.