我有一个脚本,它会重复计算文件中的行数并显示该数字,并通过不断用回车符覆盖以前的值来动态更新它。
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:数数
当我尝试在一个脚本中添加类似的代码部分时,输出行会相互覆盖。我怎样才能做到这一点?
答案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