Ruby 打开另一个终端以显示信息

Ruby 打开另一个终端以显示信息,ruby,Ruby,我想知道是否有一种简单的方法可以打开第二个终端来显示数据。所以我在终端上运行了一个程序,我想知道这个程序是否有可能打开第二个终端,我可以输出信息给用户阅读(让另一个终端自己去读)。我非常倾向于按照Tulentsev先生在第一条评论中的建议去做,但是如果你想从ruby上这样做,查找有关如何启动新进程的信息。好的,我不知道您使用的是什么操作系统或您选择的控制台,但在我的Ubuntu 12.10安装中,这打开了一个xterm窗口,显示了我的结果: a = "Hello World!" system(

我想知道是否有一种简单的方法可以打开第二个终端来显示数据。所以我在终端上运行了一个程序,我想知道这个程序是否有可能打开第二个终端,我可以输出信息给用户阅读(让另一个终端自己去读)。

我非常倾向于按照Tulentsev先生在第一条评论中的建议去做,但是如果你想从ruby上这样做,查找有关如何启动新进程的信息。

好的,我不知道您使用的是什么操作系统或您选择的控制台,但在我的Ubuntu 12.10安装中,这打开了一个
xterm
窗口,显示了我的结果:

a = "Hello World!"

system(%Q[xterm -hold -e /bin/bash -l -c "echo #{a}"])
至于解释:

  • -按住
    可防止程序一执行窗口就关闭
  • -e
    指定要运行的程序及其参数(
    /bin/bash…
    部分)
  • /bin/bash
    调用unix shell bash
  • -l
    使bash看起来就像是作为登录shell调用的一样
  • -c
    将接收控制台输出
  • echo
    在屏幕上显示消息
有关详细信息,请查看手册页中的
xterm
bash


如果您添加更多细节,也许我们可以澄清一个更好的答案,尽管,老实说,我更喜欢Sergio的答案,即输出到一个文件,并让另一个控制台跟踪该文件

您可以将输出信息记录到一个文件中,然后在另一个终端会话中跟踪该文件。是的,我想知道是否有更直接的方法。就像字面上把[terminal 2]写成“废话”。尽管如此,我还是得照你的建议去做!谢谢你的建议。为此,你必须了解系统的细节。例如,在Linux上,您可以启动gnome终端的子进程。我们需要检查您的操作系统和终端(xterm、gnome等)。假设他确实启动了子进程。如何将此子进程绑定到另一个终端会话(以便输出到该会话)?可以使用来执行此操作,但恐怕我仍然看不到它。在该主题中,没有任何地方暗示存在多个终端会话。不管怎样,跟踪文件是一种方法。其他任何事情都过于复杂了。:)是的,使用和你一样的操作系统!它工作得很好!虽然我希望有一个更便携的解决方案。我可能会按照塞尔吉奥·图兰采夫的建议去做;尽管如此,这回答了我的问题。谢谢