Bash

如何顯示和動態更新多行結果

  • October 22, 2020

我有一個腳本,它重複計算文件中的行數並顯示該數字,通過不斷地用輸入覆蓋先前的值來動態更新它。

echo "Checking in progress:"
while true ; do
   outcount=$(cat /tmp/curl-check-result.txt | wc -l)
   echo -ne "Total checked IPs:" '\t'`cat /tmp/curl-check-result.txt | wc -l`'\r'
   if [[ $outcount -eq $numips ]]; then
       break
   fi
done

但我想同時對另外兩個文件做類似的事情。像這樣的東西:

計數文件 1:*計數*
計數文件 2:*計數*
計數文件 3:*計數*

當我嘗試在一個腳本中添加類似的程式碼部分時,輸出行會相互覆蓋。我怎樣才能做到這一點?

man tput看看你可以提供一個帶有可選參數的“capname”。

man terminfo (5)看看有什麼可用於“capname”,很多功能。

這是如何執行此操作的展示:

while true; do
   var1=$((var1+1))
   var2=$((var2+2))
   var3=$((var3+3))

   printf "%s\n%s\n%s\n" "$var1" "$var2" "$var3"
   [ $var1 -ge 100 ] && break

   sleep 0.1
   # move the cursor up 3 lines
   tput cuu 3
   # clear to the end of screen
   tput ed
done

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