[방금 스크립트가 perl 이라는 것을 알았지 만 같은 논리가 적용됩니다 print "\r"
. 등을 사용 STDERR
하거나 버퍼링을 해제 하려고합니다 $| = 1
. 아래를 참조하십시오.]
CLI "진행률 표시기"를 구현하는 한 가지 방법은 \r
(캐리지 리턴) 문자를 사용하는 것입니다. 커서가 현재 줄의 시작 부분으로 이동합니다 :
#!/bin/bash
count=0
while ((1)); do
echo -ne "\rCount: $count"
sleep 1;
count=$(($count+1));
done
이해가되지 않으면 시도해보십시오.
이 기술을 사용하여 지금까지 처리 된 행 수 또는 수천 행을 표시 할 수 있습니다. 수십 또는 수백 줄은 너무 자주 (업데이트가 많을수록 = 런타임이 느려짐) 진행 상황이 계속 진행되고 있음을 보여주기에 충분하기 때문에 좋을 수 있습니다. 단위를 지정하거나 0을 추가 할 수 있습니다.
-n
와 -e
함께 사용 echo
하는 것이 중요합니다.
\b
(백 스페이스)를 비슷한 효과로 사용할 수도 있습니다 .
펄에서 :
#!/usr/bin/perl
use strict;
use warnings FATAL => qw(all);
$| = 1; # Pipeline stdout (i.e., no buffering).
my $count = 1;
while ($count) {
print "\rCount $count";
sleep 1;
$count++;
}