TCL - 如何在屏幕上打印执行exec命令期间打印的消息?

Nar*_*rek 6 printing runtime tcl exec

假设我想通过打印运行时执行输出来执行脚本或可执行文件.

当我做:

set log [exec ./executable_file]
puts $log
Run Code Online (Sandbox Code Playgroud)

然后等待很长时间然后立即打印所有内容.但我想要运行时打印.我怎样才能做到这一点?

Hai*_* Vu 9

不完美(因为它需要写入外部文件):

set log [exec executable_file | tee log.txt >@stdout]
Run Code Online (Sandbox Code Playgroud)

输出将立即显示,同时保存为"log.txt".如果您不关心保存输出:

set log [exec executable_file >@stdout]
Run Code Online (Sandbox Code Playgroud)

  • +1:注意在管道中运行命令可以改变其缓冲行为; 期望脚本`unbuffer`可以帮助你. (2认同)