Terminal

許多二進製文件如何在其正確位置更改執行百分比?

  • January 6, 2021

我正在嘗試編寫一個 C 程序,它可以完成許多二進製文件package managers在執行時所做的事情。它們會更改並添加到終端中已經輸出的文本中,這很有趣。我想知道我怎麼能做到這一點,不僅在 C 中,也許在 bash 或 python 中。例如:

program                  23 MiB   981 KiB/s 00:00 [######################] 100%

我的意思是這樣的東西,#在下載過程中長大。

謝謝你的合作。

這通常通過一遍又一遍地列印整行來完成,使用輸入而不是換行將游標返回到行的開頭而不是下一行。例如,

for i in {0..20}; do
 printf "ETA %2.1ds [%-20.${i}s]\r" "$((20-i))" "####################"
 sleep 1
done
printf "\n"

\r在許多受 C 啟發的上下文中,輸入由 表示。

更複雜的顯示通常使用curses樣式庫建構。這是有多少全屏“文本模式”應用程序處理它們的輸出;參見例如午夜指揮官

引用自:https://unix.stackexchange.com/questions/627883