ファイルの行数を繰り返し計算し、その数値を表示し、古い値をキャリッジリターンで継続的に上書きして動的に更新するスクリプトがあります。
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
しかし、同時に他の2つのファイルでも同様のことをしたいと思います。このような:
ファイル1の計算:計算 ファイル2の計算:計算 カウントファイル3:計算
スクリプトに同様のコードセクションを追加しようとすると、出力行は互いに隠れます。どうすればいいですか?
ベストアンサー1
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