ターミナルを開き、live-f1を実行すると、ターミナル(テキスト)に1秒あたりの変更のライブフィードが表示されます。プログラムの実行中(プログラムを終了するには)「Enter」キーのみを使用できます。したがって、コンソールに他のコンテンツを入力することはできません。
毎秒端末の内容をファイルに書きたいです。
どうすればいいですか?
2番目のコンソールを開き、いくつかのコマンドを使用できますか?
setterm -dumpコマンドで動作させることはできません。
答え1
live-f1
top
または同様に、端末制御文字(ncurses)を使用して新しいデータで画面を再描画しますmtr
。これがファイルまたはビターミナルデバイスにリダイレクトするときにこれらのすべてのゴミを見る理由です。
残念ながらlive-f1
、統計などのデータを保存して後で抽出するのに適した出力を取得するオプションはありません。後で再生できるように出力を保存するには、を使用できますscript
。
これにより、live-f1 が記録され、typescript と timing ファイルの 2 つのファイルが生成されます。
script -c live-f1 -t 2> timingfile
これにより出力が再生されます。
scriptreplay timingfile
答え2
私はいくつかの方法を使ってあなたに役立つかもしれないファイルで出力をキャプチャします。
script
これにより、サブシェルが生成され、すべての出力がここに保存されます。これを実行してscript
から必要に応じてexit
サブシェルを終了すると、出力は "typescript"というファイルに保存されます。
tee
パイプライン全体を別の場所にエコーできます。したがって、tee
標準出力をファイルに保存できます。
$ mycommand | tee myoutput
標準エラーもキャプチャする必要がある場合はリダイレクトします。
$ mycommand 2>&1 | tee myoutput
答え3
次のようにプログラムを実行するのはどうですか?
program > /path/to/file
program
これにより、/path/to/file
出力はすぐにリダイレクトされます。
端末に出力するにはファイルとして保存してください。確認するbashから出力をリダイレクトして標準出力に送信する方法はありますか?