删除在bash回声线(Deleting echo line in bash)

2019-06-23 22:58发布

var=ab
echo -n "$var"

输出: ab

var=abc
echo "$var"

输出: ababc

我想删除第一ab和更换abc

我会怎么做呢?

问候,INTELINSIDE

Answer 1:

也许你正在寻找的东西,如:

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

这不会真正删除任何东西,而仅仅是将光标移动到该行并覆盖的开始。 如果被写入文本太短,前面写的内容依然可见。 你可以写在旧的文本空间(很容易和便携式):

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

或者使用一些终端转义序列来删除旧的文本(不便携式):

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

移动到行的开头,写新的文本,然后删除光标到行的末尾。 (这可能不工作,这取决于在终端上。)



文章来源: Deleting echo line in bash