为什么 shell 重定向失败?

Jic*_*hao 2 linux shell

导致失败的命令,

gpc xxx.pas > 错误.txt

因为我想把错误信息上传到stackflow.com,但结果error.txt中没有任何内容,而且gpc仍然向标准输出哭诉并在屏幕上打印错误信息?

那么为什么 shell 重定向会失败呢?

谢谢。

Joh*_*n T 5

UNIX 和类 UNIX 系统中的 STDERR(标准错误)被重定向使用2>而不是单个 V 形 ( >)。

例子:

gpc xxx.pas 2> error.txt
Run Code Online (Sandbox Code Playgroud)

这将允许标准输出 (STDOUT) 像往常一样打印到终端,但将所有错误消息发送到文件error.txt.

如果您想在同一个文件中收集 STDOUT 和 STDERR,请使用2>&1: 这告诉 shell 将 STDERR ( 2)复制到 STDOUT ( 1)。现在重定向 STDOUT 得到两个流:

gpc xxx.pas 2>&1 > stdout-and-stderr.txt
Run Code Online (Sandbox Code Playgroud)