也许您正在寻找类似的东西:
var=ab
echo -n "$var"
var=abc
echo -e "\r$var"
这实际上并没有删除任何内容,而只是将光标移动到行首并覆盖。如果正在写入的文本太短,之前写入的内容仍然可见。您可以在旧文本上写空格(非常简单且可移植):
printf "\r%-${COLUMNS}s" "$var"
或使用一些终端转义序列来删除旧文本(不可移植):
echo -e "\r$var\033[K"
移动到行首,写入新文本,然后从光标处删除到行尾。(这可能不起作用,具体取决于终端。)