导致失败的命令,
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