对于编译源代码,我想知道如何“复制”终端输出,以便 stdout 和 stderr 到达它们应该去的地方,同时也到达 gedit。
当我使用./configure 2>&1 gedit -
时,所有终端输出都会发送到 gedit,但不再发送到内部需要的位置。对吗?
也许我在这里错了,但我无法找到明确的说明。
谢谢!J
答案1
阅读man bash
,尤其是“重定向”部分。
2>&1
将 STDERR(错误流)重定向到 STDOUT 所在的位置。
您说的“不再需要内部处理”是什么意思?STDERR 和 STDOUT 流是./configure
在执行其业务时产生的。脚本输出后如何处理 STDERR 或 STDOUT 通常不会影响脚本(除了lots_of_output | read_a_byte_an_hour
)。
您要gedit
处理什么?gedit
编辑后的文件要写入哪里?
你可以
./configure 2>/tmp/stderr >/tmp/stdout
然后是gedit
任一文件。
如果您想要保存 STDERR 和 STDOUT,并在稍后处理,请参阅man tee
并执行以下操作:
./configure 2>&1 | tee /tmp/logfile | later_processing ...