私はこのようなことをしたい:
user@myserver$echo -en "\rSome text to overwrite same line command is on"
問題は、私が終わった結果は次のようなことです。
Some text to overwrite same line command is onuser@myserver$
これにより、echo -e
次のような結果が得られます。
Some text to overwrite same line command is on
user@myserver$
コンソールがスクロールされていることを除いて大丈夫です。私のtmuxコンソールウィンドウの高さは1行しかないので、スクロールしたくありません。文字列の右側にスペースを埋めようとしましたが、動作しません。
答え1
$ echo -en "\rSome text"
ここでは\r
カーソルを行の先頭に戻すので多くのことはしませんが、コマンドラインでEnterを押すと、カーソルはすでにプロンプトの次の行の先頭にあります。単純なエコーのように、出力は独自のラインにあります。
$ echo foo
foo
したがって、同じコマンドラインをうまく上書きすることはできません(少なくとも新しいコマンドラインを実行する前には不可能です)。ただし、表示された最後の行にのみ興味がある場合は、これを行う必要はありません。予防しなければならないNextプロンプトを印刷します。read
続行する前に、いくつかの入力(Enterキーを押す)を待つことができます。カーソルは_
後ろに残りますbar
。
$ echo -n foo bar ; read
foo bar_
答え2
努力する
echo -en "\rSome text to overwrite same line command is on\n"