我知道是否要重定向命令的输出和" time"到文件我可以这样做:
(time python myscript.py) &> log.txt
这个版本的tee
是什么,所以一切都会显示在终端中?另一个问题是如何将标准错误从我的命令python myscript.py
重定向到log.txt
答案 0 :(得分:2)
这是另一种选择,使用流程替换(在Bash中):
{ time python myscript.py; } &> >(tee log.txt)
我可以看到两个好处:语法更接近您的原始命令(因此,可以说,更容易记住):只需通过进程替换替换您的文件。另一个好处是,在命令退出后,命令的返回码将在变量$?
中可用,与管道情况不同。
注意你没有在子shell (...)
中运行命令,使用{...}
的命令分组就足够了(注意大括号周围的空格和尾随的分号) )。
这个tee
的标准输出,stderr和time
的输出。
答案 1 :(得分:1)
(time python myscript.py) 2>&1 | tee log.txt
2>&1
会在将stderr传送到tee
之前将其重定向到stdout。
答案 2 :(得分:0)
tee
等效值为(bash
)
(time python myscript.py) |& tee log.txt