2012-03-29 78 views

回答

1

好吧,我花了几分钟的时间研究如何使用标准shell命令行来完成此操作。

为自己准备一个荒谬的命令行。

((./your-script 3>&1 1>&2 2>&3 3>&- | tee /dev/fd/2) 3>&1 1>&2 2>&3 3>&-) | 
    cat >logfile 

我只能说这种可憎的事情是它的工作原理......我找不到任何简单的工作。哦,而且,它不需要bash或任何东西。它在标准bourne外壳中工作。

我还没有弄清楚为什么最后需要| cat,但是如果没有它,它就无法工作。

+0

在末尾添加'cat'会改变行缓冲模式,所以你会看到更快的输出(可能),但我希望它最终都是一样的。 – ams 2012-03-30 09:15:39

0

用更少的字符以下命令作品:

((./your-script 3>&1 1>&2 2>&3- | tee /dev/fd/2) 3>&1 1>&2 2>&3-) | cat > logfile