我想在一行中打印进度。所以我用回车。问题是我的进展不是增加 =>这意味着第一次打印可能是Processing: Foo Bar Baz
,下一次打印可能是Processing: Foo
。简单回车的问题在于第二次打印将被第一次打印重叠。我希望你明白我想说的话。
printf "\r Processing: $x"
# or
echo -en "\r Processing: $x"
所以我的问题是:如何删除当前行的内容并用回车覆盖它?
答案 0 :(得分:3)
您可以使用clr_eol
终端功能。
printf '\r%s Processing: %s' "$(tput el)" "$x"
注意我是如何将变量移出printf
格式字符串的?通常不要在格式字符串中粘贴变量。