2012-05-02 39 views
0

無法正常輸出這是一個Debian機器紅寶石-e「把‘東西’」在Mac OS X

$ 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版本:

1.9.3-P125-PERF: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做工精細,管道紅寶石也可以工作:

1.9.3-p125-perf $ cat | ruby 
puts "foo" 
^D 
foo 

這只是表示時髦的ruby -e。 這也發生在我的girlfirends Mac上。她使用RVM。

+0

'ruby --version'的輸出是什麼? –

+0

在我的Mac上工作得很好。 –

+0

1.9.3-p125-perf:'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]' – Jan

回答

0

我發現了罪魁禍首。我使用的是舊版本的bundler-exec

bundler-exec對命令的預定義列表創建shell別名和包裝他們在這個功能:

run-with-bundler() 
{ 
    if bundler-installed && within-bundled-project; then 
     bundle exec "[email protected]" 
    else 
     "[email protected]" 
    fi 
} 

我的版本是缺少[email protected]這在某種程度上造成紅寶石胡作非爲周圍的引號。