2012-11-07 34 views
2

我想知道是否有簡單的方法來打開第二個終端來顯示數據。所以我有一個程序在終端上運行,我想知道該程序是否可以打開第二個終端,我可以輸出信息供用戶閱讀(單獨離開另一個終端)。打開另一個終端顯示信息

+2

您可以將輸出信息記錄到文件中,並在另一個終端會話中尾部記錄該文件。 –

+0

是的,想知道是否有更直接的方法。像從字面上把[終端2]「等等」。儘管如此,我可能必須按照你的建議做!感謝您的建議。 –

+0

爲此,您必須瞭解系統細節。在Linux上,爲了檢查,你可以開始GNOME終端的孩子。 – Linuxios

回答

2

好吧,我不知道你使用的是什麼操作系統或者什麼是你的選擇的控制檯,但在我的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殼的bash
  • -l使得bash的行爲就好像它被援引作爲登錄shell
  • -c將接收控制檯輸出
  • echo在屏幕上顯示的消息。

有關更多信息,請查看手冊頁xtermbash

如果您添加更多的細節,也許我們可以澄清更好的答案,儘管如此,我更喜歡塞爾吉奧的輸出到文件和另一個控制檯拖尾文件的答案。

+0

是啊,使用相同的操作系統!它完美的工作!儘管我希望有更便攜的解決方案。我可能會做什麼塞爾吉奧Tulentsev建議;儘管如此,這回答了我的問題。謝謝! –

1

我強烈傾向於像Tulentsev先生在第一條評論中所建議的那樣做,但是如果您想從ruby中這樣做,請查看here瞭解如何從ruby開始新流程。

+0

假設他確實開始了一個子進程。如何將這個孩子綁定到另一個終端會話(以便輸出到那裏)? –

+0

一個會使用[這個問題的答案](http://stackoverflow.com/questions/4234119/ruby-pipes-how-do-i-tie-the-output-of-two-subprocesses-together)來做那個 – hd1

+0

恐怕我還是看不到它。在那個話題中沒有任何一個是有多個終端會話的暗示。無論如何,尾隨文件是要走的路。其他任何事情都過於複雜。 :) –

相關問題