我想谈谈一个互动的bash过程。
这是一个例子,所以你知道我想要什么:
你可以猜到,这里和那里有很多空间可以进行漂亮的操作......; - )
如果这也适用于子进程(由bash进程启动)和基于curses的程序,那将是非常好的。
我想在Ruby中实现这个功能,并且已经尝试过IO.popen,但奇怪的事情发生了。您也可以用其他语言进行此操作。
答案 0 :(得分:5)
好的,我找到了解决方案。这项工作非常好,你甚至可以在其中启动vim: - )
require "pty"
system("stty raw -echo")
PTY.spawn("bash -i") do |pin, pout|
Thread.new do
loop do
pout.print STDIN.getc.chr
end
end
loop do
print pin.sysread(512)
STDOUT.flush
end
end
执行以下操作:
答案 1 :(得分:1)
您是否尝试过使用Session gem?
我对此没有任何经验,但README似乎描述了你想要的东西。它的描述说,“会议踢屁股”,所以在任何情况下玩它都应该是有趣/富有成效的。