繁体   English   中英

为 Mac OS 命令行应用程序更新文本

[英]Update text in place for Mac OS command line app

我正在用 Swift 编写一个简单的 mac os (10.11) 命令行应用程序来从有效的远程 URL 下载文件,我想在控制台上显示下载文件的百分比。

它将从以下内容开始:

0% of 10Mb file downloaded

然后,当我下载了一定百分比的文件时,上面的行将被替换为:

18% of 10Mb file downloaded

最后,当它完成时,字符串被替换为:

100% of 10Mb file downloaded

print(..)将继续附加到现有文本 - 是否有另一个函数可以满足我的需要?

如果您将光标留在行尾(即,不输出换行符'\n'在行尾),您可以通过输出回车符( '\r' )返回到行首。 进一步的输出将覆盖已经在线的内容。

我对 Swift 不是很熟悉,但我怀疑您可能需要显式刷新输出才能显示部分行。 如果您使用标准 CI/O,这将是fflush(stdout) 我不确定 Swift 等价物是什么,但我确定它存在。

添加

\u{1B}[1A\u{1B}[k

到你的字符串。 例如:

print("\u{1B}[1A\u{1B}[kDownloading \(myProgress)%")

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM