如何重定向“xterm -hold -e”命令的输出

如何重定向“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

我的目标是记录xterm和的所有输出不是原来的终端。这

答案1

您可以打开 xterm 日志记录并将所有 xterm 输出发送到文件:

xterm -l -lf logfile.txt -e program

答案2

重定向输出可以更改在终端中运行的程序的行为。如果你想捕捉全部程序的输出使用不干扰程序的内容,例如script

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

(Linux)或

xterm -hold -e script output.log program arguments

(OSX、其他 BSD)

或者,您可以设置xterm将其屏幕写入“打印机”,例如,使用资源printerCommand或使用菜单项立即打印全部

进一步阅读:

答案3

如果您想要告诉 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它将通常进入控制台的任何错误重定向到文件

但我认为这有点多余。从一个终端运行程序到另一个终端。

相关内容