1

のシェル コマンドで実行される PHP スクリプトを作成していますmyfile.php
次のように時間とともに変化する進行状況バーを表示したい:

[------]

[*-----]

[****--]

これがそのようなことを行うためのベストプラクティスであるかどうかはわかりませんが、単純な を使用して実行しecho、シェル内の進行状況バーの位置を変更したくありません。

完了したら、読み込み中のもの全体を削除したいと思います。

echo一般的に、すでに編集したものを変更するにはどうすればよいですか?

4

2 に答える 2

1

使用する必要があるのは ANSI エスケープ シーケンスです。

StackOverflow に関するこの質問と回答はそれをカバーしており、ニーズに合わせて調整できるはずです。次をご覧ください。コマンドライン出力の更新、つまり進捗状況

于 2013-04-13T06:08:07.233 に答える
0

chr(8)バックスペース文字です。ちょっとした計算で、カーソルをバーの先頭に戻すのに十分な数を印刷し、以前に印刷した場所の上に新しいデータを印刷することができます。

バーの最後に改行を印刷しないでください。

これに関する問題: 出力に対して何らかのテキスト キャプチャを行うと、これらはキャプチャされたテキストに取り込まれますが、コンソール ウィンドウでは問題なく表示されます。

于 2013-04-13T06:16:03.097 に答える