我试图在一个终端线中显示一些数据。此数据包含文件的编号和路径。我正在使用以下代码来执行此操作:
#!/bin/bash
echo
find . -type f | while read a;
do
sleep 1s;
echo -ne "$a\r";
done
问题在于,实际行不会清除前一行。目录包含以下文件aaa.aaa
,bbbb.bbbbb
和cccc.cccccccccccccccc
,输出顺序如下:
./cccc.cccccccccccccccc
./aaa.aaacccccccccccccc
./bbbb.bbbbbccccccccccc
我希望它是:
./cccc.cccccccccccccccc
./aaa.aaa
./bbbb.bbbbb
我该怎么做才能清除这条线?
答案 0 :(得分:2)
在\033[K
之后添加\r
:
echo -ne "$a\r\033[K";
这是用于擦除当前行上从光标位置到行尾的所有内容的控制序列。