为什么 shell 重定向会失败?

为什么 shell 重定向会失败?

导致失败的命令,

gpc xxx.pas > 错误.txt

因为我想将错误信息上传到stackflow.com,但结果发现error.txt中没有任何内容,而且gpc仍然向stdout发出呼叫并在屏幕上打印错误信息?

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

谢谢。

答案1

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

例子:

gpc xxx.pas 2> error.txt

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

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

gpc xxx.pas 2>&1 > stdout-and-stderr.txt

相关内容