回车不会删除以前的值

时间:2013-04-15 09:09:07

标签: bash return

我试图在一个终端线中显示一些数据。此数据包含文件的编号和路径。我正在使用以下代码来执行此操作:

#!/bin/bash 
echo
find . -type f | while read a;
do
sleep 1s;
echo -ne "$a\r";
done

问题在于,实际行不会清除前一行。目录包含以下文件aaa.aaabbbb.bbbbbcccc.cccccccccccccccc,输出顺序如下:

./cccc.cccccccccccccccc
./aaa.aaacccccccccccccc
./bbbb.bbbbbccccccccccc

我希望它是:

./cccc.cccccccccccccccc
./aaa.aaa
./bbbb.bbbbb

我该怎么做才能清除这条线?

1 个答案:

答案 0 :(得分:2)

\033[K之后添加\r

echo -ne "$a\r\033[K";

这是用于擦除当前行上从光标位置到行尾的所有内容的控制序列。