gnome端末からテキストファイルに直接出力

gnome端末からテキストファイルに直接出力

こんにちは。スクリプト出力をファイルに送信しようとしています。

私のスクリプトは

gnome-terminal -- ./program +config 

いくつかの投稿を確認してみました。

gnome-terminal -- "./program +config 2>&1 | tee output.txt"

または

gnome-terminal -- 'bash -c "./program +config 2>&1 | tee output.txt"'

そして他の多くのバリエーションがありますが、うまくいきません

Ubuntu 22.04を使用しています。

答え1

正解

あなたがやっていることを実装するためにそれを使う必要はありませんgnome-terminal./programgnome-terminalで実行するよりも出力をキャプチャするより良い方法があるかもしれません。

まだgnome-terminalを使いたいですか?

Konsoleやxtermなどの他の端末とは異なり、セッション出力を記録するオプションが見つかりません。 Gnomeのマニュアルにはデータのロールバックが記載されています。

ロールバックデータは、ディスク上のシステム一時ファイルのデフォルトの場所(通常は/ tmp)に圧縮および暗号化されたファイルとして保存されます。これらのファイルは作成直後に切断され、ディレクトリリストには表示されません。その端末が閉じると、占有されているディスク容量が解放されます。

Gnomeは、ユーザーが出力ログを取得できないように最善を尽くしているようです。このユーティリティを使用してこの問題を解決できますscript。マニュアルページから:

    script - make typescript of terminal session

答えは簡単です。scriptプログラムを実行する前に起動してください。つまり、次のものを交換してください。

gnome-terminal -- ./program +configそしてgnome-terminal -- script -f $LOG_FILE -c "./program +config"

たとえば、プログラムが終了した後に出力を見つける必要がある場所$LOG_FILEに正しい値を指定する必要があります。LOG_FILE=$HOME/.terminal.log

関連情報