【问题标题】:Open another terminal to display information打开另一个终端显示信息
【发布时间】:2012-11-07 23:28:08
【问题描述】:

我想知道是否有一种简单的方法可以打开第二个终端来显示数据。所以我有一个在终端中运行的程序,我想知道该程序是否有可能打开第二个终端,我可以向该终端输出信息供用户阅读(不理会另一个终端)。

【问题讨论】:

  • 您可以将该输出信息记录到一个文件中,并在另一个终端会话中跟踪该文件。
  • 是的,想知道是否有更直接的方法。就像字面上所说的那样 [终端 2] “等等”。尽管如此,我可能不得不按照你的建议去做!感谢您的建议。
  • 为此,您必须了解系统细节。例如,在 Linux 上,您可以启动 gnome-terminal 的子节点。
  • 我们将需要您的操作系统和终端(xterm、gnome 等)。

标签: ruby


【解决方案1】:

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

a = "Hello World!"

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

至于解释:

  • -hold 阻止窗口在程序执行后立即关闭。
  • -e 指定要运行的程序及其参数(/bin/bash ... 部分。)。
  • /bin/bash 调用 unix shell bash
  • -l 使 bash 的行为就像它已被作为登录 shell 调用一样
  • -c 将接收控制台输出
  • echo 在屏幕上显示一条消息。

查看xtermbash 的手册页以获取更多信息。

如果您添加更多详细信息,也许我们可以澄清一个更好的答案,但说实话,我更喜欢 Sergio 的输出到文件并让另一个控制台跟踪该文件的答案。

【讨论】:

  • 是的,使用与您相同的操作系统!它完美地工作!虽然我希望有一个更便携的解决方案。我可能会按照 Sergio Tulentsev 的建议去做。尽管如此,这回答了我的问题。谢谢!
【解决方案2】:

我强烈倾向于按照 Tulentsev 先生在第一条评论中的建议进行操作,但如果您想从 ruby​​ 执行此操作,请查看 here 以获取有关如何从 ruby 开始新流程的信息。

【讨论】:

  • 假设他确实启动了一个子进程。如何将此孩子绑定到另一个终端会话(以便输出到那里)?
  • 可以使用answer to this question 来做到这一点
  • 恐怕还是没看到。该主题中没有任何地方暗示多个终端会话。无论如何,拖尾文件是要走的路。其他任何事情都过于复杂。 :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-02
  • 2012-06-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多