在当前终端中打开新选项卡的命令并传递命令以在新选项卡上运行

Jam*_*ber 3 gnome command-line gnome-terminal

我知道gnome-terminal会打开一个新窗口,我想知道有没有办法打开一个新选项卡,而不仅仅是一个新窗口?

之后,有没有办法将命令传递到新窗口,例如

gnome-terminal && cd /

这将导致

  1. 新航站楼启用
  2. 然后运行新终端cd /

[编辑] 这些答案将说明如何将 cmds 传递到另一个终端,但它不会回答如何打开新TAB。这就是我所追求的,我不想打开多个终端。

egm*_*ont 6

GNOME Terminal不提供通用命令行解决方案来在现有窗口中打开新选项卡。

(为什么?因为它可能会打开多个窗口,并且不知道在哪个窗口中打开新选项卡。你可能会说只有一个窗口,但如果实现这样的功能,软件需要保持一致当它有多个窗口时需要做一些合理的事情,但它实际上无法做到。)

根据已提交的答案,存在模拟用户按键等黑客行为,但仅在 X.Org 下有效,而在 Wayland 下无效。

从即将推出的版本 3.28 开始,如果gnome-terminal --tab从 GNOME 终端内执行此命令,该命令将在执行此命令的 GNOME 终端窗口中打开一个新选项卡。

(在这种情况下,它如何知道在哪个窗口中打开新选项卡?它通过在它打开的每个终端中预先将某个环境变量设置为不同的值来知道。该环境变量可以让它找到所需的窗口。)

因此,对于您的具体情况,您可以这样做:

gnome-terminal --tab -- bash -c 'cd /; exec bash'
Run Code Online (Sandbox Code Playgroud)

cd /这样,一旦完成,您就可以在新选项卡中获得正在运行的 shell 。如果您刚刚这样做gnome-terminal --tab -- some command,那么该选项卡将在退出后立即关闭some command。通过使用bash -c 'some command; exec bash'替代方法,该选项卡将在完成后有一个正在运行的bash进程some command


归档时间:

查看次数:

6785 次

最近记录:

3 年,2 月 前