这就是在 Debian 机器上发生的事情
$ ruby -e 'puts "something"'
something
$
这是我所期望的。
但是,当我在我的 Mac(OS X 10.7.3)上运行相同的程序时,我得到了
1.9.3-p125-perf $ ruby -e "puts 'something'"
1.9.3-p125-perf $ ruby -e "print 'something'"
1.9.3-p125-perf $ rbenv shell 1.8.7-p358
1.8.7-p358 $ ruby -e "puts 'something'"
1.8.7-p358 $ ruby -e "print 'something'"
nil1.8.7-p358 $ rbenv shell system
system $ ruby -e "puts 'something'"
system $ ruby -e "print 'something'"
nilsystem $
有谁知道这里发生了什么以及我如何让 ruby 再次输出有意义的东西?
我的 Ruby 版本:
1.9.3-p125-性能:ruby 1.9.3p125 (2012-02-16 revision 34643) [x86_64-darwin11.3.0]
1.8.7-p358:ruby 1.8.7 (2012-02-08 patchlevel 358) [i686-darwin11.3.0]
系统:ruby 1.8.7 (2010-01-10 patchlevel 249) [universal-darwin11.0]
脚本或 IRB 可以正常工作,管道 ruby 也可以:
1.9.3-p125-perf $ cat | ruby
puts "foo"
^D
foo
它只是ruby -e
表现得很时髦。这也发生在我的girlfirends Mac上。她使用 RVM。