Bash에서 진행률 표시줄 만들기

Basheseo Jinhaenglyul Pyosijul Mandeulgi



스크립트를 실행하는 동안 일정 시간 동안 기다려야 하는 경우 사용자에게 잠시 기다리도록 알리는 진행률 표시줄을 만드는 것이 좋습니다. 진행률 표시줄은 간단한 Bash 스크립트를 사용하거나 'cv', 'dialog' 등과 같은 일부 내장 Linux 명령을 사용하여 만들 수 있습니다. Bash 스크립트를 사용하여 진행률 표시줄을 만드는 방법은 이 자습서에 나와 있습니다.

Bash에서 진행률 표시줄을 만드는 다양한 예

Bash에서 진행률 표시줄을 구현하는 다양한 방법은 튜토리얼의 이 부분에 나와 있습니다.

예제 1: 명령 없이 간단한 진행률 표시줄 구현

'#' 문자와 'sleep' 명령을 사용하여 진행률 표시줄을 표시하는 다음 스크립트로 Bash 파일을 만듭니다. 여기서는 'printf' 명령을 사용하여 진행률 표시줄을 표시합니다. 진행률 표시줄은 네 부분으로 나뉩니다. 25%는 1초 후에 표시됩니다. 50%는 3초 후에 표시됩니다. 75%는 2초 후에 표시됩니다. 1초 후에 100%가 표시됩니다.







#!/빈/배시

printf ' \N 작업이 완료될 때까지 기다리십시오... \N \N '

#1초만기다려

1

# 진행률 표시줄의 첫 번째 부분을 인쇄합니다.

printf '[##### ] 25%% 완료. \아르 자형 '

#3초만 기다리세요



#진행률 표시줄의 두 번째 부분을 인쇄합니다.

printf '[########## ] 50%% 완료되었습니다. \아르 자형 '

#2초만 기다리세요

2

#진행률 표시줄의 세 번째 부분을 인쇄합니다.

printf '[############### ] 75%% 완료. \아르 자형 '

#1초만기다려

1

#프로그래스 바의 마지막을 출력

printf '[####################] 100% 완료되었습니다. \아르 자형 '

printf ' \N \N 작업이 완료되었습니다. \N \N '

.



스크립트 실행 후 1초 후에 다음 출력이 나타납니다.







스크립트 실행 후 7초 후에 다음 출력이 나타납니다.



예제 2: 'Pv' 명령을 사용하여 진행률 표시줄 구현

'pv' 명령의 전체 형식은 '파이프 뷰어'입니다. 파이프를 통과하는 데이터의 진행 상황을 모니터링하고 데이터 크기에 따라 진행률 표시 줄을 표시하는 데 사용됩니다. 이 명령은 시스템에 기본적으로 설치되지 않습니다. 이 예제의 스크립트를 실행하기 전에 다음 명령을 실행하여 'pv' 명령을 설치합니다.

$ 스도 적절한 설치하다 태양광

한 위치에서 다른 위치로 복사되는 큰 크기의 파일을 선택해야 합니다. 현재 위치에서 '/home/fahmida/temp/' 위치로 'test.txt' 파일을 복사하는 다음 스크립트로 Bash 파일을 만듭니다. 여기서 'pv' 명령은 진행률 표시줄을 표시하는 데 사용됩니다. 'test.txt' 파일의 크기에 따라 진행률 표시줄이 표시됩니다.

#!/빈/배시

에코 '한 위치에서 다른 위치로 파일을 복사하는 중입니다.'

#2초만 기다리세요

2

# 파일을 목적지에 복사

고양이 test.txt | 태양광 -에스 $ ( 통계 -씨 % 테스트.txt ) > / / 이해 / 온도 / test.txt

에코 '파일이 복사되었습니다.'

스크립트 실행을 완료하면 다음 출력이 표시됩니다.

예제 3: 'Dialog' 명령을 사용하여 진행률 표시줄 구현

Bash에서 진행률 표시줄을 구현하는 또 다른 방법은 'dialog' 명령을 사용하는 것입니다. 이 명령은 터미널에 잘 보이는 진행 표시줄을 표시하는 데 사용할 수 있습니다. 이 진행률 표시줄을 사용하여 다양한 유형의 위젯을 표시할 수 있습니다. 이 명령으로 표시되는 진행률 표시줄의 작업은 Bash 스크립트로 제어할 수 있습니다. 이 진행률 표시줄은 기본적으로 시스템에 설치되지 않습니다. 다음 명령을 실행하여 시스템에 이 진행률 표시줄을 설치합니다.

$ 스도 적절한 설치하다 대화

'dialog' 명령을 사용하여 진행률 표시줄을 표시하는 다음 스크립트로 Bash 파일을 만듭니다. '/etc/passwd' 파일을 '/home/fahmida/tempdir' 위치로 복사하는 작업은 진행률 표시줄을 사용하여 표시됩니다. 진행률 표시줄은 다섯 부분으로 나뉩니다. 각 부분은 2초 후에 표시됩니다. –title 옵션은 'dialog' 명령에서 진행률 표시줄의 제목을 표시하는 데 사용됩니다. –gauge 옵션은 'dialog' 명령에서 높이 10줄과 너비 100자의 진행률 표시줄을 표시하는 데 사용됩니다. 진행률 표시줄 위에 '작업 완료 대기 중' 메시지가 표시됩니다.

#!/빈/배시

# 카운터 초기화

current_pos = 0

(

#무한 루프 정의

~을 위한 ( ( ;; ) )

하다

고양이 <
구분 기호

$current_pos

# 현재 카운터 값 표시

cp /etc/passwd to /home/fahmida/tempdir ($current_pos%):

구분 기호

EOF


#카운터를 20씩 증가

( ( current_pos+= 이십 ) )

#카운터 값이 100 이상이면 루프에서 종료

[ $current_pos -gt 100 ] && 부서지다

#각 증분 후 2초 대기

2

완료

) | 대화 --제목 '파일 복사 중...' --계량기 '작업 완료 대기 중' 10 100 0


스크립트 실행 후 6초 후에 다음 출력이 나타납니다.


스크립트 실행 후 10초 후에 다음 출력이 나타납니다.


결론

Bash 사용자가 프로그램에서 진행률 표시줄을 사용하는 데 도움이 되도록 Bash 스크립트를 사용하여 진행률 표시줄을 개발하는 다양한 방법이 이 자습서에 나와 있습니다.