1

再会

如何将它们发送到仅对话标准输出和文件 /root/sh/sh.log 标准输出 + 输出错误

# I need
dialog          == standard output
/root/sh/sh.log == standard output + error output 

# My experimental
start 2>&1 /root/sh/menu.log | dialog --stdout --progressbox 20 200;

谢谢

4

2 回答 2

0

我会尝试类似 start 2>> /root/sh/sh.log | tee -a /root/sh/sh.log | 对话

于 2012-07-13T11:06:02.857 回答
0

您可以尝试使用tee命令和进程替换

{ start | tee >( dialog --stdout --progressbox 20 200) ; } > /root/sh/menu.log 2>&1

在命令组中,标准输出被传递给tee,它写入一个“文件”,该文件实际上是一个进程替换构造,它将其输入传递给dialog命令。将其视为标准输出的分叉管道。

因为标准错误没有被重定向,tee并将其输入传递回标准输出,所以两者都被传递出命令组。首先,我们将标准输出重定向到所需的日志文件,然后将标准错误复制到标准输出所在的任何位置。

于 2012-07-13T12:36:56.450 回答