新しい行を追加する代わりに行を更新する場合は、コマンド出力の前にどのように追加しますか?

新しい行を追加する代わりに行を更新する場合は、コマンド出力の前にどのように追加しますか?

出力(進行)の前にrcloneカスタムテキストを追加したいです。インターネット検索の最後に、私は次の解決策を思いついた。

rclone sync "$SOURCE" "$DESTINATION" | while read line; do echo "   $line"; done

ただし、実際にはrclone(--progressを使用)は最初にいくつかの行を取得し、実行中に更新します。ただし、これを使用すると、while古い行を更新するのではなく、常に新しい行を追加します。この問題を解決する方法を知っている人はいますか?

デフォルトではrclone --progress output毎秒更新されます。

Transferred:             0 / 0 Bytes, -, 0 Bytes/s, ETA -
Checks:                97 / 97, 100%
Elapsed time:         0.0s

希望の出力:

[My text] Transferred:             0 / 0 Bytes, -, 0 Bytes/s, ETA -
[My text] Checks:                97 / 97, 100%
[My text] Elapsed time:         0.0s

実際の結果whileは更新されませんが、以下を追加します。

[My text] Transferred:             0 / 0 Bytes, -, 0 Bytes/s, ETA -
[My text] Checks:                97 / 97, 100%
[My text] Elapsed time:         0.0s
[My text] Transferred:             0 / 0 Bytes, -, 0 Bytes/s, ETA -
[My text] Checks:                97 / 97, 100%
[My text] Elapsed time:         0.0s
[My text] Transferred:             0 / 0 Bytes, -, 0 Bytes/s, ETA -
[My text] Checks:                97 / 97, 100%
[My text] Elapsed time:         0.0s
[My text] Transferred:             0 / 0 Bytes, -, 0 Bytes/s, ETA -
[My text] Checks:                97 / 97, 100%
[My text] Elapsed time:         0.0s

ベストアンサー1

あなたの質問を理解したかどうかわかりません。同じ行を継続的に更新したい場合は、次のように使用できます。

rclone sync "$SOURCE" "$DESTINATION" | while read line; do echo -en "   \r$line"; done

-n 末尾の改行を印刷するためにエコーを停止します。

-e はバックスラッシュシーケンスを評価するよう echo に指示します。

おすすめ記事