Я хотел бы открыть терминал из моего сценария ruby, отобразить выходные данные сценария и выйти из терминала в конце сценария.
# open xterm -> `mate-terminal -e " ... "`
a = ''
while a != 'q'
a = STDIN.getch
puts "Hello World !" # output in xterm
end
# quit xterm
Возможно ли это, или мне нужно выполнить сценарийпозвонить другому?
РЕДАКТИРОВАТЬ:
Я могу сделать с двумя сценариями:
test1.rb
#!/usr/bin/env ruby
`mate-terminal -e "bash -c 'ruby test2.rb'"`
test2.rb
#!/usr/bin/env ruby
puts "hello world"
gets
запустить первый скрипт
$ ruby test1.rb
Но возможно ли это сделать с помощью одного скрипта?
EDIT2:
Я пытаюсь это сделать
#!/usr/bin/env ruby
obj1 = "object 1"
obj2 = "object 2"
file = <<EOF
#!/usr/bin/env ruby
require 'io/console'
a = ''
while a != 'q'
puts "Do you want to see obj1, obj2 or quit ? .. enter 1, 2 or q"
a = STDIN.getch
case a
when '1' then puts "#{obj1}"
when '2' then puts "#{obj2}"
end
end
EOF
File.open('display.rb', 'w') { |f| f.puts file }
`mate-terminal -e "bash -c 'ruby display.rb'"`
Это работает, но на самом деле это не красиво.
Есть ли другой способ?