存储GNU时间命令和脚本的输出

时间:2019-01-03 18:58:00

标签: python linux bash gnu

我正在尝试tee Python脚本的输出,以便可以观察其进度并记录其输出。但是,我还预先添加了/usr/bin/time命令,以便可以测量内存开销和时序。

当我按如下方式运行命令时,我只会看到Python脚本的输出,而没有看到/usr/bin/time命令的输出。

(/usr/bin/time -f '%P %M %E %S %U' python Script.py arg1 arg2) | tee Script.output

当我按如下方式运行它时,(自然地)我看不到终端上的输出,但是我得到了正确的输出(即脚本的输出以及内存/定时开销)。

(/usr/bin/time -f '%P %M %E %S %U' python Script.py arg1 arg2) &> Script.output

这里是否可以合并tee?我更希望看到它的进度,因为此脚本可能需要一两天才能运行。

1 个答案:

答案 0 :(得分:2)

time命令将其输出写入stderr,以免污染正在计时的进程的stdout

请注意,在第二个示例中,您将stdoutstderr都重定向为&>

如果您还希望将stderr用管道传输到tee,请使用|&

(/usr/bin/time -f '%P %M %E %S %U' python Script.py arg1 arg2) |& tee Script.output