当我使用sudo apt-get install <package-name>
安装任何包时,我观察到以下情况:
Downloading some packages (78%)
此行曾经打印过永远不会改变立场而是不断用百分比值更新自己。而其他东西改变这条线仍然持续的! 他们是如何做到的呢?
答案1
您可能需要看看echo -ne '\r'
是什么。
以下是一个例子:
echo -ne 'Downloading 1%\r'
sleep 1
echo -ne 'Downloading 100%\r'
sleep 1
echo -ne '\n'
答案2
Jobin 说的没错,他们用回车符“\r”来做这件事。不过,我认为原帖作者是在寻找一个真实世界的编程示例。
现在,我对 C/C++ 语法不是 100% 熟悉,但这里有一个可行的 Python 示例:
打开终端并输入“python”开始编写脚本。
逐行输入以下代码,输入完最后一行后按两次 ENTER 键并观察其运行情况。确保在“for i in range(11):”部分之后,在接下来的行中必须按 TAB 键进行缩进。这是正确的 Python 格式。如果您没有按 TAB 键,则会收到错误。
import sys
import time
for i in range(11):
time.sleep(1)
i=i*10
sys.stdout.write("\rDownload is %d%% complete!" %i)
sys.stdout.flush()
这就是终端执行您所询问的操作的方式。