如何将"watch"的输出保存到文件中

era*_*ran 21 linux bash ubuntu

我想每60秒运行一次命令,并将输出保存到日志文件中.我知道我可以打印到控制台了

watch -n 60 <mycommand>
Run Code Online (Sandbox Code Playgroud)

但是如果我想将它保存到文件以及打印到控制台呢?

小智 25

Watch旨在在控制台窗口中运行.由于存在大量不可打印的格式化字符,因此将其输出打印到文件是不方便的.

如果准确的60秒不是问题,你可以不用手表试试这个:

 while <some condition>
 do
     <mycommand> 2>&1 | tee -a /path/to/logfile
     sleep 60
 done
Run Code Online (Sandbox Code Playgroud)

这会将输出保存到日志文件中,并在控制台上显示.


MLS*_*LSC 5

试试吧:

while true
do
    watch -n 60 <command> 2>&1 | tee -a logfile
done
Run Code Online (Sandbox Code Playgroud)

tee这样使用,您可以在终端上看到输出并在日志中捕获它.

  • 这不会导致可用的输出,因为结果文件是使用终端仿真器控制代码归档的。 (3认同)
  • 有没有办法产生可用的输出?没有终端的东西?请 (2认同)