CLIでプログレスバーみたいのを出力する

  • 87
    いいね
  • 3
    コメント
この記事は最終更新日から1年以上が経過しています。

コマンドラインのツールつくるときとかに、ダウンロード中の進捗をパーセントで表示したかったんだけど、表示をクリアして再描画する方法がわからなかったので調べた。

\rで現在の行をクリアできるらしい。追記:行のクリアじゃなかった。コメント参照

rubyなら

100.times do |num|
  print "working... #{num}%\r"
  sleep 0.05
  STDOUT.flush
end

Node.jsだと

var i = 0;
setInterval(function() {
  process.stdout.write('working... ' + i + '%\r');
  i++;
  if (i === 100) process.exit();
}, 50);

こんな感じになる。

fc9afe8ffc3baef7f2898a7f3d03f38b.gif