
我讀過了這問題及其答案,但他們沒有回答我的問題。
shell腳本是這樣的:
let total=$(lftp -f lftp-script-count.txt | wc -l)-2
lftp -f lftp-script.txt |
while read word word2 filename
do
if [ "$word" = Transferring ]
then let count=count+1
let percent=count*100/total
echo -e "XXX\n$percent\nDownloading $filename\nXXX"
fi
done |
whiptail --title lftp --gauge progress 10 60 0
這lftp-scrip-count.txtlftp 腳本運作良好:
debug 10
set ssl:verify-certificate no
open ...
user ... ...
cd ...
ls -R .
這lftp-scrip-count.txtlftp 腳本運行緩慢(但肯定可以運行,儘管我希望它運行得更快)並且進度不會達到鞭尾:
set ssl:verify-certificate no
open ...
user ...
cd ...
mirror -P=10 . lftp-works --exclude-glob=node_modules
quit
結果是顯示了進度條,但直到最後仍保持在 0%,儘管它下載了整個 251MB。如果我調整終端視窗的大小,鞭尾螢幕不會被重新繪製。
當下載結束時,進度條視窗消失得很好。
在我看來,簡單所顯示的趨勢lftp -f lftp-script.txt
並不是全球性的。除了百分比之外,該命令的輸出還包含以下內容:
- 等待回應...
- 接收資料/TLS
- 正在建立資料連線...
- 正在接收資料...
例子:
我的問題是:如何讓進度條能夠很好的顯示進度呢?
是否有另一個 CLI FTP 用戶端可以顯示進度並且適合我的要求,如上面顯示的 lftp 腳本所示?
謝謝。
更新1
還有 2 個遺留問題:
- 如果我可以顯示相對於將要複製的文件總數(而不是所有可複製的文件)的操作進度,那就太好了,因為我使用
--only-newer
. - 記住(1),
--only-newer
當目錄已經完全下載時,找出為什麼使用它與不使用它具有相同的速度會很有趣。如果我能讓這個過程更快,那就太好了。