대화상자의 컬 진행

대화상자의 컬 진행

대화 상자 창에 컬 진행 상황을 올바르게 표시하는 방법은 무엇입니까?

curl http://mysite.corp/image/root_21.tar.bz2 | tar -C /mnt/dest/ -jxf -

여기에 이미지 설명을 입력하세요.

이 명령을 시도했지만 보시다시피 올바르게 표시되지 않습니다.

curl -f -x '' -L http://mysite.corp/image/root_21.tar.bz2 | tar -C /mnt/dest -xjpf - --exclude='dev/*' | dialog --backtitle "dialog" --stderr --title 'Linux Image' --textbox /tmp/log 30 80

여기에 이미지 설명을 입력하세요.

이 명령은 나에게 거의 효과가 있었지만 각 줄에 새 줄 진행 상황을 표시하는 대신 자체적으로 덮어쓰기를 원합니다. 기본적으로 원래 명령 표시와 동일하지만 대화 상자에 표시되기를 원합니다.

(curl -f -x '' -L http://mysite.corp/image/root_21.tar.bz2  | tar -C /mnt/dest -xjpf - --exclude='dev/*' ) 2>&1 | dialog  --progressbox 20 120

여기에 이미지 설명을 입력하세요.

답변1

--progressbox다음과 같은 대화 상자 옵션을 사용할 수 있습니다 .

(curl ... | tar ... ) 2>&1 | dialog --progressbox 30 120

2>&1curl및 의 stderr 출력을 tar표준 입력으로 리디렉션합니다. 즉, 파이프를 dialog.

줄 다시 쓰기(제어 문자: CR '\r'(캐리지 리턴))는 지원되지 않으므로 dialog추가 줄에서 각 진행 변경 사항을 가져옵니다.

답변2

컬을 사용하여 다운로드하고 리디렉션하는 경우아스팔트, 간단한 진행 상황을 인쇄할 수 있습니다.

--checkpoint[=NUMBER] NUMBER개 레코드마다 진행 메시지 표시

--checkpoint-action=ACTION 각 체크포인트에서 ACTION을 실행합니다.

예를 들어, 다음은 10개의 체크포인트마다 포인트를 인쇄하는 동안 gz 파일을 다운로드하고 추출합니다.

curl -s -L $url | tar -xz --checkpoint=.10

진행 중인 자세한 내용을 보려면 다음을 수행하세요.

  • 컬의 "자동" 출력을 원하지 않으면 컬 명령에서 "-s"를 제거하십시오.
  • 아카이브에서 추출된 파일 목록을 인쇄하려면 tar 명령에 "-v"를 추가하세요.

관련 정보