如何将不同 shell 的 stdout 和 stderr 结合起来?

如何将不同 shell 的 stdout 和 stderr 结合起来?

我知道一些 shell 的答案,例如cmd.exe你可以:

some.exe > out.txt 2>&1

如何对其他 shell(bash、ksh、tcsh、powershell 等)实现相同功能?

答案1

鱼壳

要将标准输出和标准错误重定向到文件 all_output.txt,你可以这样写:

echo Hello > all_output.txt 2>&1

答案2

对于 csh 和 tcsh

some.exec >& out.txt

答案3

电源外壳完全一样:

2>&1 将错误发送到 get-process none, powershell 2>&1
          成功输出流。

(从about_Redirection)。

bash并且至少我也知道 ksh 它是这样工作的。

这似乎是一个普遍的惯例。

查找此问题的快速方法是打开 shell 的手册页并搜索&1(使用/然后输入&1)。这在其他情况下很少发生。

答案4

在 bash 中你做的完全相同。

./some_exec > out 2>&1

相关内容