将程序输出重定向到文件但不是在运行时结束时

时间:2016-10-28 12:26:30

标签: linux bash redirect output stdout

我想将程序的输出重定向到Linux控制台中的文件。我发现使用“>”的灵魂命令。但它对我不起作用。 我需要在程序运行期间输出而不是在运行时结束时。因为程序将Progress(百分比)流式传输到stdout。我无法在Linux系统上安装新工具。

程序执行更新功能:

**预期的输出是: (Perecent正在计划期间((从0-100%))

# erase 
# load file XXX
# 100%
# erase 
# load file XXX
# 100%

仅记录节目结尾的100%信息。而不是在程序运行时。对我来说,在程序运行和结束时获取百分比信息非常重要。我想在分离的GUI中可视化百分比。

2 个答案:

答案 0 :(得分:2)

您是否尝试过管道tee?这里有一些例子。

echo "text" | tee /home/yourusername/file
bash somescript.sh | tee /home/yourusername/somescript.log

答案 1 :(得分:0)

怎么样:

$ nohup program > output.txt ; tail -f output.txt
  • nohup在后​​台运行program,将其输出重定向到文件
  • tail -f在屏幕上播放文件末尾

这当然意味着您可以在program运行时与{{1}}进行互动。