[英]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.