var=ab
echo -n "$var"
出力:ab
var=abc
echo "$var"
出力:ababc
ab
最初のものを削除して、次のように置き換えたいabc
どうすればいいですか?
よろしく、intelinside
おそらくあなたは次のようなものを探しています:
var=ab
echo -n "$var"
var=abc
echo -e "\r$var"
これは実際には何も削除しませんが、カーソルを行の先頭に移動して上書きするだけです。書き込まれているテキストが短すぎる場合でも、前の書き込みの内容は引き続き表示されます。古いテキストの上にスペースを書き込むことができます(非常に簡単で移植性があります)。
printf "\r%-${COLUMNS}s" "$var"
または、いくつかのターミナルエスケープシーケンスを使用して、古いテキストを削除します(移植性はありません)。
echo -e "\r$var\033[K"
行の先頭に移動し、新しいテキストを書き込んでから、カーソルから行の終わりまで削除します。(端末によっては動作しない場合があります。)