您好,我正在尝试将脚本的输出定向到文件
我的脚本是
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 +config
和gnome-terminal -- script -f $LOG_FILE -c "./program +config"
。
确保为 指定一个正确的值$LOG_FILE
,例如LOG_FILE=$HOME/.terminal.log
,一旦程序退出,您应该在其中找到输出。