web-dev-qa-db-ja.com

'xterm -hold-e'コマンドの出力をリダイレクトする方法

teeを使用して、端末のコマンドからの出力をログに記録できることを知っています。例:

_df -h | tee ~/log.txt_

ただし、次のようなより複雑なコマンドを使用してこれを行うにはどうすればよいですか。

_xterm -hold -e program arg1 arg2 arg3_

私はこれを無駄に試しました:

xterm -hold -e matlab -noxterm -nojvm -r "solver('/path/to/a/folder',1)" | tee ~/log.txt

私の目標は、元の端末のxtermnotのすべての出力をログに記録することです。ザ・

2
Aeronaelius

Xtermロギングをオンにして、すべてのxterm出力をファイルに送信できます。

xterm -l -lf logfile.txt -e program

3
jesjimher

出力をリダイレクトすると、端末で実行されるプログラムの動作が変わる可能性があります。プログラムのall出力をキャプチャする場合は、プログラムに干渉しないものを使用します(例:script :)。

xterm -hold -e script -c "program arguments" output.log

(Linux)または

xterm -hold -e script output.log program arguments

(OSX、その他のBSD)

または、xtermを設定して、画面を「プリンタ」に書き込むこともできます。たとえば、printerCommandリソースを使用するか、メニューエントリPrint-Allを使用します。すぐに

参考文献:

1
Thomas Dickey

Xtermに実行するように指示したプログラムの出力が必要な場合は、xterm -hold -e " program arg1 arg2 arg3 | tee ~/log.txt"

たとえば、私のUbuntuでは、gnome-terminalからxterm -hold -e " firefox | tee ~/log.txt"のようなものを実行します。

エラーをログに記録するオプションもあります

xterm -hold -e program 2> errors.txtこれは、通常コンソールに送信されるエラーをファイルにリダイレクトします

しかし、これは少し冗長だと思います。ある端末から別の端末へのプログラムの実行。

0