更新1

更新1

我讀過了問題及其答案,但他們沒有回答我的問題。

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 個遺留問題:

  1. 如果我可以顯示相對於將要複製的文件總數(而不是所有可複製的文件)的操作進度,那就太好了,因為我使用--only-newer.
  2. 記住(1),--only-newer當目錄已經完全下載時,找出為什麼使用它與不使用它具有相同的速度會很有趣。如果我能讓這個過程更快,那就太好了。

相關內容