我通过bash包装器脚本运行my_program,并使用exec来阻止分支进程:
#! /bin/bash
exec my_program >> /tmp/out.log 2>&1
现在我想将所有输出复制到两个不同的文件中,但仍然阻止分叉,所以我不想要使用管道和tee这样:< / p>
#! /bin/bash
exec my_program 2>&1 | tee -a /tmp/out.log >> /tmp/out2.log
如何使用bash做到这一点?
避免分叉的原因是确保:
答案 0 :(得分:0)
我认为您可以做的最好的事情是通过流程替换将标准输出和错误重定向到tee
:
exec > >( tee -a /tmp/out.log >> /tmp/out2.log) 2>&1
然后exec
将bash
脚本替换为您的程序(它将保持与标准输出相同的打开文件句柄)。
exec my_program