色々あるコンソールアプリケーションがよくとるやり方で、現在の行の出力内容をどんどん更新していく……といった出力方法がある。例えば、wgetを実行するとダウンロード状況のパーセンテージやインジケータや残り時間が、刻々と更新表示されていく。恥ずかしながら、こういう出力の実装方法をずっと知らずにいた。標準入出力に関する深い知識と正しい理解がいるんだろうと漠然と思っていたが、いざ調べてみるとそうでもなかった。 youtube-dlのソースを暇つぶしに眺めていてわかってしまった。 出力行の先頭にエスケープシーケンス「\r」をつければ良い 出力行の出力にエスケープシーケンス「\r」をつけてやる。たったこれだけのことだった。例えば次のようなスクリプトを書いてbashで実行してみる。 #!/bin/bash for i in `seq 5` do printf "\r%s" `date "+%H:%M:%