【发布时间】:2011-01-03 14:36:25
【问题描述】:
我有这个脚本,它在执行时将用户放到 IRB 会话中。
一切都好,但是当我使用 *nix 管道获取输入时(例如使用 cat),IRB 会话立即结束。
我可以将脚本(我们称之为 myscript.rb)简化为以下内容:
需要'irb' 如果 $stdin.stat.size > 0 @text = $stdin.read 别的 @text="什么都没有" 结尾 ARGV.清除 IRB.start当像 ruby myscript.rb 这样执行时,我最终进入 IRB 会话(如预期的那样)。
但是(假设foo.txt 存在于cwd 中):cat foo.txt | ruby myscript.rb 将只打印 IRB 提示,然后关闭 IRB 会话(我被丢弃到 $bash)。
任何已知的解决方法或想法?
顺便说一句:它在 ruby 1.8.7 和 1.9.2 上具有相同的行为。
【问题讨论】: