印刷後のUnixシェルの行の上書き

印刷後のUnixシェルの行の上書き

Unixシェルから印刷した後に行を変更する方法。次のように行を削除して書き換える\rことができますが、どのように既存の行を完全に削除せずに上書きし、次のように予想される出力を取得できますか?

注文する:

printf "12345";printf "\r67";

出力:

67

期待される出力

67345

ベストアンサー1

コメントで議論したように、問題はカーソルを置く場所です。たとえば、

goldilocks@home> echo -n 1234; echo -ne "\r56"
56goldilocks@home>

最初はecho「1234」を書き、2番目は行の先頭に戻り、「56」を印刷して終了します。カーソルは6の後ろに留まり、次にシェルはコマンドプロンプトを印刷して「34」を上書きします。 2番目のechoに改行文字を含めるか、-nechoが自動的に改行文字を印刷するようにスイッチを削除すると、次の結果が表示されます。

goldilocks@home> echo -n 1234; echo -e "\r56"
5634
goldilocks@home>

カーソルが「34」を残し、1行下に移動します。

おすすめ記事