파일의 줄 수를 반복적으로 계산하고 해당 숫자를 표시하며 이전 값을 캐리지 리턴으로 지속적으로 덮어써 동적으로 업데이트하는 스크립트가 있습니다.
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