Shell 如何使用';在gnome终端中打开新选项卡';emacs-nw和x27';?

Shell 如何使用';在gnome终端中打开新选项卡';emacs-nw和x27';?,shell,emacs,gnome-terminal,Shell,Emacs,Gnome Terminal,我必须在gnome终端中打开一个选项卡,在新打开的选项卡中使用“emacs-nw”(应用程序) $who user :0 2016-08-24 10:39 (:0) user pts/0 2016-08-24 14:03 (:0) 我在运行“who”命令后编写了一个脚本 #!/bin/bash xdotool key ctrl+shift+t /usr/bin/emacs -nw $1 > /dev/pts/1 运行此脚本时,将打开“

我必须在gnome终端中打开一个选项卡,在新打开的选项卡中使用“emacs-nw”(应用程序)

$who
user     :0           2016-08-24 10:39 (:0)
user     pts/0        2016-08-24 14:03 (:0)
我在运行“who”命令后编写了一个脚本

#!/bin/bash

xdotool key ctrl+shift+t
/usr/bin/emacs -nw $1 > /dev/pts/1
运行此脚本时,将打开“新建”选项卡。但emacs是在同一个gnome终端中打开的


有人能解释为什么会这样吗?并可以解释如何在新选项卡中打开emacs-nw(应用程序),而不干扰当前gnome终端。

此链接提供了有关如何打开gnome终端的答案。但我的问题是打开一个emacs或其他应用程序,而不是在不干扰当前终端的情况下运行像ls in new tab这样的命令。我想在当前终端上工作而不受干扰,但答案是一样的。以下是您的脚本的功能:它人工键入
C-s-t
,由于您是从终端运行脚本,因此终端具有焦点,因此可以按键。它创建了一个新选项卡,就好像您键入了
C-S-t
。然后在原始选项卡中运行一个命令(emacs),因为脚本就是在那里运行的。该命令的stdout也被重定向到伪术语,这几乎肯定不是您想要的。我猜您希望将实际命令而不是其输出回显到对应于新终端的pty;它可能看起来像
gnome终端--tab-eemacs…
。我不熟悉gnome终端;这可能得到支持,也可能得不到支持。2) 像使用
C-S-t
一样,人工输入命令。这就是我链接到的问题所显示的。3) 以某种方式找出哪个pty对应于新选项卡(我不确定这有多容易),然后将命令回显给它。你肯定不能只是将命令回显到pty,你需要以某种方式将它交给shell(这个术语实际上没有运行任何东西,它只是显示东西),或者强制emacs连接到你想要的pty(同样,不确定这是否可行)。这个链接有一个关于如何打开gnome终端的答案。但我的问题是打开一个emacs或其他应用程序,而不是在不干扰当前终端的情况下运行像ls in new tab这样的命令。我想在当前终端上工作而不受干扰,但答案是一样的。以下是您的脚本的功能:它人工键入
C-s-t
,由于您是从终端运行脚本,因此终端具有焦点,因此可以按键。它创建了一个新选项卡,就好像您键入了
C-S-t
。然后在原始选项卡中运行一个命令(emacs),因为脚本就是在那里运行的。该命令的stdout也被重定向到伪术语,这几乎肯定不是您想要的。我猜您希望将实际命令而不是其输出回显到对应于新终端的pty;它可能看起来像
gnome终端--tab-eemacs…
。我不熟悉gnome终端;这可能得到支持,也可能得不到支持。2) 像使用
C-S-t
一样,人工输入命令。这就是我链接到的问题所显示的。3) 以某种方式找出哪个pty对应于新选项卡(我不确定这有多容易),然后将命令回显给它。您肯定不能只是将命令回显到pty,您需要以某种方式将其交给shell(该术语实际上没有运行任何东西,它只是显示东西),或者强制emacs连接到所需的pty(同样,不确定这是否可行)。