ruby 编写控制台进度条

ruby 中,$stdout.flush 让控制台当前行内容可以重写,以此我们可以做出进度条的效果。

def set_progress(index, char = '*')
	print (char * (index / 2.5).floor).ljust(40, " "), " #{index}%\r"
end

100.times do |i|
	set_progress(i + 1)
	$stdout.flush
	sleep 0.05
end
puts

posted @ 2019-12-17 13:10  linying1991  阅读(369)  评论(0编辑  收藏  举报