1. ホーム
  2. bash

[解決済み] bashで端末の最終行を削除して置換するには?

2022-05-16 07:02:38

質問

bashで経過秒数を表示するプログレスバーを実装したいです。そのためには、画面に表示されている最後の行を消す必要があります("clear"コマンドは画面全体を消しますが、私はプログレスバーの行だけを消して新しい情報に置き換える必要があります)。

最終的には以下のようになります。

$ Elapsed time 5 seconds

そして、10秒後にこの文章を(画面の同じ位置で)次のように置き換えたい。

$ Elapsed time 15 seconds

どのように解決するのですか?

キャリッジリターンを "Echo "する。

seq 1 1000000 | while read i; do echo -en "\r$i"; done

man echoから。

-n     do not output the trailing newline
-e     enable interpretation of backslash escapes

\r     carriage return