줄을 출력하는 명령 줄 프로그램을 실행 한 다음 잠시 후에 그 행을 업데이트합니다. 하지만 루비를 사용하면 한 줄을 출력 한 다음 다른 줄을 출력하는 것처럼 보일 수 있습니다. 지금ruby를 사용하여 명령 프롬프트에 이전에 출력 한 행을 쓰십시오.
내가되는 것을 출력 :
Downloading file:
11MB 294K/s
12MB 307K/s
14MB 294K/s
15MB 301K/s
16MB 300K/s
Done!
그리고 대신에, 나는이보고 싶어은 :
Downloading file:
11MB 294K/s
이 나중에 순간을 이어 :
Downloading file:
16MB 300K/s
Done!
라인 다운로드 된 파일 크기 및 전송 속도가 목록 대신 매번 덮어 쓰여지는 것을 보여주는 루비 스크립트 출력 업데이트 된 값을 완전히 새로운 라인으로 보냅니다.
출력을 생성하는 데 현재 puts
을 사용하고 있습니다.이 경우에는 분명히 설계되지 않았습니다. 이 결과를 얻을 수있는 다른 출력 방법이 있습니까?
이 해결책은 개행 문자가 출력되거나 프로그램이 종료 될 때까지 출력을 표시하지 않습니다. 이 예는 'print'123 '; sleep 5; 인쇄 "\ r"; "456"인쇄는 처음에 아무것도 인쇄하지 않고 5 초 후에 "456"을 인쇄합니다. 그래서 제게 많은 도움이되지 않습니다. –
'STDOUT.flush'를 추가하여 즉시 출력으로 보냅니다. 나는 대답도 업데이트했다. – detunized
아, 맞습니다. 그 고정 및 그 위대한 지금 일하는, 감사합니다! –