我知道是否要将命令和“时间”的输出都重定向到文件,我可以这样做:

(time python myscript.py) &> log.txt

这个的tee版本是什么,因此所有内容也会在终端中显示?另一个问题是如何将标准错误从命令python myscript.py重定向到log.txt

最佳答案

这是使用流程替换(在Bash中)的另一个选项:

{ time python myscript.py; } &> >(tee log.txt)

我看到两个好处:语法更接近您的原始命令(因此,可以说,它更容易记住):只需用进程替换替换文件即可。另一个好处是,与管道情况不同,命令退出后,命令的返回码将在变量$?中可用。

请注意,您没有在子shell (...)中运行命令,将命令与{...}分组就足够了(注意大括号和尾部分号周围的空格)。

tee的stdout,stderr和time的输出。

关于linux - Linux : time a command, redirect both stout and sterr to log file and show it in terminal,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28329036/

10-16 19:03