이 같은 진행률 표시 줄이 일반적으로 이루어집니다
방법이 현재 진행 업데이트를 출력하는 것입니다 ...이 진행 바 프로그램이 일을 정확히 알지 못하고 확신이 대답 할 수있는 방법은 없습니다 만, 그러나 다음 라인의 끝에서 ascii CR (캐리지 리턴)을 없이 넣고 LF (줄 바꿈)없이. 그러면 커서를 다음 줄로 이동하지 않고 표시 커서를 줄의 시작 부분으로 재설정하여 각 후속 진행 업데이트가 이전 줄을 덮어 씁니다. 따라서 파일로 리디렉션하는 경우 파일의 내용이 동일하게 유지됩니다.
vi로 이러한 파일을 보려면 "^ M"으로 표시된 포함 된 CR을 실제로 볼 수 있습니다 (단, LF 문자는 단순히 줄의 끝으로 해석되며 실제로는 표시됨). 다른 편집기로 파일을 보면 CR 문자를 유효한 행 끝 표시기로 해석하고 각 행을 LF 문자가 있거나없는 별도의 행으로 표시 할 수 있습니다.
당신은 log.txt 파일을 어떻게 표시하고 있는지 말하지 않습니다. 프로그램에서 내장 CR 방법을 사용하고 있다면 "cat log.txt"를 사용하면 대화식 사용과 동일한 출력이 표시됩니다. 즉, 각 진행 업데이트 "줄"이 이전의 파일을 덮어 씁니다. 하나는 끝 부분에 표시됩니다.
진행률 표시 줄을 출력하는 프로그램이 터미널 장치에 표시되는지 여부에 민감 할 수도 있습니다. 즉, isatty()를 호출하고 그에 따라 출력을 수정 중일 수 있습니다.
실제 이진 콘텐츠를 확인하기 위해 최종 log.txt에 파일에이 명령을 실행하는 데 유익 수 있습니다 : "0 D"로 표시됩니다
od -tx1z log.txt
CR (일명^M을). LF (aka^J)가 0a로 표시됩니다.
하지만 마지막 줄에는 '진행률 [===== ... ===] 100 %'이 표시됩니다. 너는 그걸 할 수는 있어도, 그 점은 보이지 않는다. – fedorqui
그래, 괜찮아요.하지만 실행 파일이 50에서 멈춘다면 50을 표시해야합니다. rit – user2598064
'usr/bin/exec> log.txt'는 단지 덮어 씌울 것입니다. 지금은 –