我正在编写Ruby命令行实用程序,我希望它用新数据更新控制台中的一行,而不是打印多行输出。我要使用的效果类似于使用时可能会看到的控制台进度栏wget
。
例如:
app.rb
#!/usr/bin/ruby env
data = %w[this is some data]
data.each {|s| puts s}
当我运行此应用程序时,它将输出跨越4行的以下内容:
$ ruby app.rb
this
is
some
data
$
我希望在下面的示例中[]之间的区域显示输出,一次显示一个单词。
$ ruby app.rb
[ this ]
$
有任何想法吗?
使用\r
(回车)将光标移动到行首:
data = %w[this is some data]
data.each { |s|
sleep(0.5)
print "\r%-20s" % s # `print` instead of `put` to avoid newline.
# Additional spaces to overwrite remaining characters of previous output
}
puts
参见演示。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句