👻

端末に進捗状況を表示する

2023/10/19に公開

概要

端末に進捗状況を表示する方法を記載します。

やってみる

# frozen_string_literal: true

100.times do |num|
  print "Progress: |#{'=' * num}"

  sleep 0.02

  print "\e[1G\e[2K"
end

実行すると、次のようになります。

russ@penguin:~$ ruby progress.rb 
Progress: |=========================================

解説

エスケープシーケンスを用いて画面制御を行います。[1Gでカーソルを左端に移動し、[2Kで行の全体を消去しています。https://www.mm2d.net/main/prog/c/console-02.html を参考に作成致しました。

Discussion