0
var=ab
echo -n "$var"

出力:ab

var=abc
echo "$var"

出力:ababc

ab最初のものを削除して、次のように置き換えたいabc

どうすればいいですか?

よろしく、intelinside

4

1 に答える 1

11

おそらくあなたは次のようなものを探しています:

var=ab
echo -n "$var"
var=abc
echo -e "\r$var"

これは実際には何も削除しませんが、カーソルを行の先頭に移動して上書きするだけです。書き込まれているテキストが短すぎる場合でも、前の書き込みの内容は引き続き表示されます。古いテキストの上にスペースを書き込むことができます(非常に簡単で移植性があります)。

printf "\r%-${COLUMNS}s" "$var"

または、いくつかのターミナルエスケープシーケンスを使用して、古いテキストを削除します(移植性はありません)。

echo -e "\r$var\033[K"

行の先頭に移動し、新しいテキストを書き込んでから、カーソルから行の終わりまで削除します。(端末によっては動作しない場合があります。)

于 2012-04-25T18:13:43.497 に答える