问题

问题
$ gnome-terminal  --tab  --title="700"  --disable-factory  -e

Failed to parse arguments: Option "--disable-factory" is no longer supported in this version of gnome-terminal.

我正在使用 GNOME 3。

答案1

如果你确实需要运行多个 gnome-terminal 进程实例(但你为什么要这样做?),请按照以下步骤操作https://wiki.gnome.org/Apps/Terminal/Debugging除了 gdb 部分。

答案2

为了读者的利益。

问题

选项--disable-factory已获得已删除在 V3.8 中gnome-terminal,有决不以简单的方式存档此行为。至少没有一种方法可以向不熟悉 shell 语法的人解释。

因此命令行

gnome-terminal  --tab  --title="700" --disable-factory -e ...

由于问题中提出的错误而失败。

请原谅我写下这段非常私人的旁注:我真的不明白,为什么这个关键选项被删除了。甚至微软也引入了一个运行选项cmdexplorer或者说powershell阻止方式。微软会听取用户的意见。但 Gnome 不会。Gnome 突然删除了隐藏选项--disable-factory,而不是正式记录它。如果他们继续这样做,从长远来看,微软将获胜。这非常非常可悲,而且非常愚蠢。(抱歉发牢骚,但必须说出来。)

顺便说一句:Ubuntu 16.04已恢复 --disable-factory使用模拟此功能的包装器。(如果你看看这个包装器的复杂性,我的咆哮仍然比以前更加强烈。)

变体 0

我将其称为0,因为两者都不是真正的正确解决方案。变体 1 中显示了一个正确的解决方案。

变种 0a

您可以尝试的第一件事是删除选项--disable-server

gnome-terminal --tab --title="700" -e ...

然而这有以下缺点:

这确实无需等待gnome-terminal完成。如果有其他gnome-terminal正在运行的命令,则命令立即返回。通常这不是您想要的,因为这就是选项--disable-factory首先存在的原因。

变体 0b

因此,仅当您能够确保在所有情况下都不会gnome-terminal运行其他选项时,删除此选项才是可行的。

gnome-terminal如果不是这种情况,但你处于不支持其他运行的情况,你可以尝试以下操作绝望的后备变体

killall -9 gnome-terminal
gnome-terminal  --tab  --title="700" -e ...

但要小心! 这将无条件地杀死所有gnome-terminal仍然打开的 s。 在生产环境中,这通常会造成比帮助更大的危害。你已被警告!

变体 1

如果您不需要运行它gnome-terminal,可以在其他终端仿真器中运行它。@muru 评论了一个很好的替代方案。

xfce4-terminal理解与 几乎相同的选项集gnome-terminal(并添加了一些多年来一直缺失的非常方便的其他选项gnome-terminal)。它还有一个记录的选项,它的功能与--disable-factory相同gnome-terminal。该选项的--tab工作方式与 不同,gnome-terminal因此也必须将其删除才能使某些功能正常工作。替换为:

xfce4-terminal --title="700" --disable-server -e ...

您还可以添加一个--hold选项,如果您希望在窗口关闭之前能够看到命令的完整输出:

xfce4-terminal --hold --title="700" --disable-server -e ...

请注意,这xfce4-terminal存在一点竞争条件,不幸的是,这会截断输出,因此--hold不是完全有效的。正确修复此问题(以便您可以使用复制粘贴)超出了答案的范围,但是通常echo $? && read -t.1在执行的脚本中添加一点(后面)-e可以解决 99% 的问题。

如果您收到xfce4-terminal缺少的消息,则必须先安装它。它可以与同时安装gnome,即使它属于另一个桌面版本(Xfce):

sudo apt-get install xfce4-terminal

唯一的缺点是,它xfce4-terminal看起来与其他的不一样gnome-terminal,并且遵循一些其他的

变体 2..∞

有无数种其他可能的方法来解决这个问题。其中大多数都非常复杂。对于普通人来说太复杂了,那些不太喜欢 shell 的人。

所以我把它们放走了。我的建议是:

正如@muru 所说,尝试使用xfce4-terminal而不是gnome-terminal

对于那些喜欢 shell 的人来说

所有简单的解决方案都不是真正完美的,因为它们不返回命令的返回值(gnome-terminal也不返回)。可悲的是。要解决这个问题,这是一个完全不同的故事。

答案3

变体 3。

https://unix.stackexchange.com/a/502498/303187 为了避免交叉发布,我只留下链接,如果你懒得阅读,可以关注它并向下滚动 - 有一个存档可以放置/,它有所有要创建的文件

相关内容