많은 출력을 생성하는 긴 스크립트를 실행하는 cron 작업이 있습니다. 일부 출력은 단일 캐리지 리턴으로 구분된 행입니다. 명령줄에서 실행하면 연속된 행이 서로 겹쳐서 역방향 스크롤을 과도하게 오염시키지 않고 진행 상태 출력을 제공합니다. 하지만 cron 작업의 출력을 볼 때 이 줄을 하나도 놓치지 않고 모두 보고 싶습니다.
최근까지 mailx
cronjob에서 보고서를 인쇄할 때 제어 문자를 반전된 비디오로 대체하여 ^M
강조 표시했습니다. 이것은 모든 선을 보이게 하므로 내가 원하는 동작입니다. 그러나 이제 알 수 없는 사항이 변경되어(버전 업그레이드?) mailx
제어 문자를 그대로 인쇄하고 있어 이메일 인쇄 시 서로 덮어쓰게 됩니다. 이 동작을 되돌리고 mailx
제어 문자를 다시 바꾸려면 어떻게 해야 합니까?
답변1
tr
추가 처리 또는 보내기 전에 출력을 파이프할 수 있습니다.
./your-script | tr "\r" "\n" | mail
이렇게 하면 모든 캐리지 리턴이 개행 문자로 바뀌게 됩니다.
crontab에서도 동일한 효과를 얻을 수 있습니다.
* * * * 2 /path/to/your-script --args | tr "\r" "\n"
답변2
문제는 mailx
호출기 설정에 있었던 것으로 나타났습니다. more
이전에 사용되었던 less
(이스케이프된) 동안 어떤 이유로 사용되기 시작 합니다 . more
다시 연결하면 less
이전 동작이 복원되었습니다.