2013-04-15 121 views
2

我想在一個終端行顯示一些數據。該數據包含文件的編號和路徑。我用下面的代碼來做到這一點:Carrige返回不刪除以前的值

#!/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 

我應該怎麼做來清除行?

+0

看到這個:http://stackoverflow.com/questions/10321230/deleting-echo-line-in-bash – anubhava

回答

2

添加後\033[K\r

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

也就是說擦除從光標的位置當前行的一切,直到行結束控制序列。

+0

這就是它,但我必須在'\ r'之前添加它。不管怎樣,謝謝! – nervosol

+0

@nervosol對,我的壞,這是有道理的,因爲你是在同一時間輸出新的'$ a'。我很高興它有幫助。 – Paulpro