Answers:
很有可能prog1
将其输出写入标准错误。您可以使用以下命令将两个输出重定向到单个文件
prog1 prog2 > outfile.txt 2>&1
或者您可以使用
prog1 prog2 > outfile.txt 2> errors.txt
这不会分隔各个程序的输出,而是分隔输出通道。请参阅外壳程序的控制和重定向运算符是什么?有关详细信息。
如果您查看prog1
的文档,可能会找到一个选项,告诉它将其输出存储在命名文件中。例如,对于strace
,
strace -o strace.txt prog2 > outfile.txt
将strace
输出存储在strace.txt
,将所有内容写入标准输出outfile.txt
。
echo >&2 hello world
等同于echo hello world >&2
。此处的更多信息:tldp.org/LDP/abs/html/io-redirection.html
2>&1
已去后> outfile.txt
。重定向顺序很重要。