回车前清除行

时间:2015-02-17 15:20:37

标签: bash

我想在一行中打印进度。所以我用回车。问题是我的进展不是增加 =>这意味着第一次打印可能是Processing: Foo Bar Baz,下一次打印可能是Processing: Foo。简单回车的问题在于第二次打印将被第一次打印重叠。我希望你明白我想说的话。

printf "\r Processing: $x"
# or
echo -en "\r Processing: $x"

所以我的问题是:如何删除当前行的内容并用回车覆盖它?

1 个答案:

答案 0 :(得分:3)

您可以使用clr_eol终端功能。

printf '\r%s Processing: %s' "$(tput el)" "$x"

注意我是如何将变量移出printf格式字符串的?通常不要在格式字符串中粘贴变量。

相关问题