从 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来实现您正在做的任何事情。很可能有一种./program比在 gnome-terminal 中运行它更好的方法来捕获输出。

你仍然想使用 gnome-terminal

与其他终端(如 Konsole 或 xterm)不同,我找不到任何选项来记录会话的输出。如果有的话,Gnome 手册提到了回滚数据:

回滚数据存储在磁盘上的压缩和加密文件中,位于系统临时文件的默认位置(通常为 /tmp)。这些文件在创建后立即取消链接,因此不会显示在目录列表中。一旦相应的终端关闭,占用的磁盘空间就会被释放。

看起来 Gnome 正在竭尽全力阻止用户获取输出日志。您可以使用该实用程序来解决这个问题script。从手册页:

    script - make typescript of terminal session

答案很简单,只需script在运行程序之前启动即可。换句话说,替换:

gnome-terminal -- ./program +configgnome-terminal -- script -f $LOG_FILE -c "./program +config"

确保为 指定一个正确的值$LOG_FILE,例如LOG_FILE=$HOME/.terminal.log,一旦程序退出,您应该在其中找到输出。

相关内容