终端:摆脱光标闪烁

时间:2018-09-19 19:51:30

标签: terminal

我正在使用while循环反复打印到同一行,以监视进度。

echo; while true; do 
    sleep 0.1; 
    echo -en "\e[1A"; 
    run | some |code | awk '{print}'; 
done;

每次将我的输出打印到同一行。

但是,存在一个缓冲区问题:光标在echo和print语句之间闪烁。

在循环时如何消除终端光标闪烁的状态?

也许是一个不同的问题,但仍然是一个解决方案:如何在命令后临时抑制光标?

1 个答案:

答案 0 :(得分:1)

您可以通过将回波组合到 awk 命令中来减少闪烁。例如:

echo; while true; do 
    sleep 0.1; 
    run | some |code | awk '{printf("\033[A%s\n", $0); }'; 
done;

(非标准) \e 等同于 \033 ,并且您实际上并不需要重复计数 {{ 1}}