$ 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 ...
由于问题中提出的错误而失败。
请原谅我写下这段非常私人的旁注:我真的不明白,为什么这个关键选项被删除了。甚至微软也引入了一个运行选项
cmd
,explorer
或者说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
为了避免交叉发布,我只留下链接,如果你懒得阅读,可以关注它并向下滚动 - 有一个存档可以放置/
,它有所有要创建的文件