次のコマンドを使用してbashセッションを記録しようとしています。
js:/var/tmp # script -aqf /var/tmp/out
ファイルには、out
出力に加えて多くのゴミが表示されます。たとえば、スペースや改行以上のものを見ることができます。
Script started on Tue Jul 14 14:17:57 2015
^[[?1034h^[[1m^[[31mjs-om:/var/tmp # ^[(B^[[m^M
^[[1m^[[31mjs:/var/tmp # ^[(B^[[m^M
^[[1m^[[31mjs:/var/tmp # ^[(B^[[m^M
^[[1m^[[31mjs:/var/tmp # ^[(B^[[m^M
^[[1m^[[31mjs:/var/tmp # ^[(B^[[m^M
^[[1m^[[31mjs:/var/tmp # ^[(B^[[mpwd^M
/var/tmp^M
^[[1m^[[31mjs:/var/tmp # ^[(B^[[m^M
^[[1m^[[31mjs:/var/tmp # ^[(B^[[m^M
^[[1m^[[31mjs:/var/tmp # ^[(B^[[m^M
^[[1m^[[31mjs:/var/tmp # ^[(B^[[m^M
^[[1m^[[31mjs:/var/tmp # ^[(B^[[mexit^M
exit^M
問題はエンコーディングにあると思います。この問題に対する解決策はありますか?
答え1
いいえ、問題はエンコードではありません。マニュアルページに記載されている画面の前提条件に従わないようです。
Certain interactive commands, such as vi(1), create garbage in the type‐
script file. Script works best with commands that do not manipulate the
screen, the results are meant to emulate a hardcopy terminal.
複雑なプロンプトで作成できるすべての種類のコンテンツがあります。通知設定
PS1="$ "
ごみの書き込みを防ぐために。
答え2
問題を解決することに加えて、環境変数に適切な値をエクスポートして、アプリケーションが印刷されない文字をエクスポートしないように説得PS1
できます。TERM
正式なセッションは、おそらくexport TERM=dumb
セッションの最初script
(またはTERM=dumb script <args>
呼び出し時に)にあるでしょう。PS1
を使用して移植可能なものを作成すると仮定すると、tput
後者もその目的に適している可能性があります。
答え3
スクリプト出力から制御文字(コンソールコード/色付き)を削除するあなたの質問に答えるようです。
まず、すべてのエスケープシーケンスのTypeScriptファイルを消去し、script +を使用します。