是否有 VT100 转义序列的组合允许我的 C 程序打印如下内容:
等待......
到控制台,以使点一个接一个出现的方式?本质上,我想要一个可以让我插入额外的“。”的命令。在已经发送的换行符前面。
我正在寻找一种适用于 linux 的快速单线器;它不必是便携式的。ncurses 对此太过分了。
一个简单的方法是使用转义序列
"\x1b[A"
将光标向上移动一行。然后,重新打印“Waiting...”消息,比上次多一个点。
您可以将 ESC[K(清除到行尾)添加到 ESC[A(上一行),然后打印新行文本
使用 Python 的示例:
import random, time
for _ in range(100):
print('\x1b[A\x1b[Kthis will print each line cleanly: %d' %(random.randint(0, 100000)))
time.sleep(0.1)
如果您真的想要整洁,请使用 ESC7(保存光标)和 ESC8(恢复光标)
然后,你写下你的行,最后你使用 ESC7。在打印语句的开头,您使用 ESC8。请注意,除非您关闭自动换行符,否则这在您的 tty 底部不起作用。它适用于除底部之外的所有线路。
import random, time
print('this will print each dot cleanly: \x1b7')
for _ in range(10):
print('\x1b8.\x1b7')
print('print more foo: %d' %_)
time.sleep(0.1)
对于 shell 脚本 (bash),您可以使用不带 \n 的 printf "..." 或 echo -n