再会
如何将它们发送到仅对话标准输出和文件 /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;
谢谢
我会尝试类似 start 2>> /root/sh/sh.log | tee -a /root/sh/sh.log | 对话
您可以尝试使用tee
命令和进程替换
{ start | tee >( dialog --stdout --progressbox 20 200) ; } > /root/sh/menu.log 2>&1
在命令组中,标准输出被传递给tee
,它写入一个“文件”,该文件实际上是一个进程替换构造,它将其输入传递给dialog
命令。将其视为标准输出的分叉管道。
因为标准错误没有被重定向,tee
并将其输入传递回标准输出,所以两者都被传递出命令组。首先,我们将标准输出重定向到所需的日志文件,然后将标准错误复制到标准输出所在的任何位置。