dodaの日記: AIXでのログ出力 2
日記 by
doda
AIXでのログ出力で、プロンプト等が繰り返し記録されるという質問が出た。
ある程度は予想が付いていたが、念の為 TTXttyrec でログを取ってもらった。
ログを確認したら、予想通りプロンプトを繰り返し出力している。
何これ。こんなの初めて見た。
AIX(のシェル?)って変な動きするなあ。
問題的には #13868 や #18611 と一緒で、複数記録されるのが正しいのだけれど、これは確かに見にくい(醜い)なあ。
あと今回見直して気がついたけれど、#13868 の方は同じ現象が報告されていた。
この時の主題はBSだと思い込んでいたけれど、汚いという感想にはこの問題もかなり影響していたのかも。
もうちょっとよく読んでいればよかった。
チケットにも書いたけれど、現在の所 Tera Term 単体での対応は出来ない。
これが綺麗に出力されると言う事は、記録されたログが書き換え/削除されたり、記録されないログがあったりする訳で、必要な出力が記録されない事も有り得る。
それって、ログとしてどうなの? という話にもなる。
まあ、それを理解して使う分にはそういう選択肢があってもいいとは思うが。自分は使わないけれど。
個人的には通常はバイナリログ、可能ならば ttyrec も一緒に記録するというようにしている。
すべて記録していらない部分を捨てるというのは簡単だが、記録されていない部分を後から再現するのは無理だし。
対応としては、以前から構想だけはある TTXtermlog が出きれば対応出来ないこともないのだけれど、イマイチ気が乗らないなあ。
set history だっけ?キーボード入力がアレなのでは? (スコア:1)
がビシバシ効いている環境で入力しているんでないかなあ。
プロンプトに対して'u','n','a','m','e',' ','-','a','ENTER'とキーをひっぱたいているんでないという状況を想像しました。
bash系で↑↓キーに触っているのと同様に、set history=viで'ESC','h','j','l',k'またはset history=emacsで'Ctl-b','Ctl-f'
(合ってるか?vi教徒なのでよく知らん)みたいなことを想像しました。
Tera Term抜きのターミナルでscriptコマンドで入力を確認しても(行末の^Mを除いて)同じ内容が書かれているようなら
そういうことです。
Re:set history だっけ?キーボード入力がアレなのでは? (スコア:1)
ログを見た限りでは、ヒストリ等で入力している訳ではなさそうです。
ttyrecでの記録を見ると、一文字ずつ順番に入力しているのが見て取れます。
そして、Returnを押したと思われるタイミングでプロンプトと入力文字列を3回書き直しています。
シェルが余計な出力を行っているというのは間違いないのでしょうけれど、なぜこんな事をしているのかは分かりませんでした。
他のシェルではこのような動作をしているのを見た事がないので、AIXのシェル独特の問題なんだと思います。