多くの出力を生成する長いスクリプトを実行するcronジョブがあります。一部の出力は、単一のキャリッジリターンで区切られた行です。コマンドラインで実行すると、連続した行が互いに重なり合って、逆スクロールを過度に汚染することなく進行状況出力を提供します。しかし、cronジョブの出力を見るとき、この行を1つも見逃さずにすべて見たいです。
最近まで、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
が復元されました。