我正在尝试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
?我更希望看到它的进度,因为此脚本可能需要一两天才能运行。
答案 0 :(得分:2)
time
命令将其输出写入stderr
,以免污染正在计时的进程的stdout
。
请注意,在第二个示例中,您将stdout
和stderr
都重定向为&>
。
如果您还希望将stderr
用管道传输到tee
,请使用|&
:
(/usr/bin/time -f '%P %M %E %S %U' python Script.py arg1 arg2) |& tee Script.output