在一个终端上写命令,在另一终端上查看结果


Answers:


46

是的。一幅价值一千个字的图片:

拉杜码头

因此,您必须使用>operator将您的命令输出重定向到/dev/pts/#。您可以找到#使用whow命令。如果您要重定向和出现错误,请使用:

<command> >& /dev/pts/#

谢谢。但如果另一个终端不存在。我们该怎么办?还是最好说将其传递给新的?
Mohammad Reza Rezwani

5
您可能需要执行此操作的脚本:该脚本将您的命令作为参数,然后应打开一个新命令gnome-terminal并检测tty新终端的tty(使用命令),最后将输出发送给它。
RaduRădeanu2014年

8

像这样的东西为您$HOME/.bashrc

ng() { gnome-terminal -x sh -c "$*; bash"; }

这将运行命令并在新的终端窗口上显示结果。

例子:

ng ls -l
ng echo foo

编辑:要考虑$HOME/.bashrc使用别名代替:

ng() { gnome-terminal -x bash -ic "$*; bash"; }

则输出ls应为彩色(为此提示感谢RaduRădeanu )。


这将直接在新终端中运行命令。
RaduRădeanu2014年

是的,但是先在旧终端中运行它有什么好处?
TuKsn 2014年

没有优势...,但实际上此评论的答案。
RaduRădeanu2014年

4
您将了解是否可以跑步type ls,然后ng type ls:)
RaduRădeanu2014年

1
如果在bashrc的一行中写入函数,则可能需要用分号将其结束,否则您将遇到“文件意外结束”错误。所以ng() { gnome-terminal -x sh -c "$*; bash" ;}应该更好。并且,如果您使用的是xfce(xfce4-terminal作为默认仿真器):ng() { xfce4-terminal -x sh -c "$*; bash" ;}或者您可以直接通过任何默认仿真器运行ng() { x-terminal-emulator -x sh -c "$*; bash";}
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.