簡體   English   中英

ruby -e'放入“東西”在Mac OS X上不輸出任何內容

[英]ruby -e 'puts “something”' does not output anything on Mac OS X

這就是在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版本:

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。

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

bundler-exec為預定義的命令列表創建shell別名,並將其包裝在此函數中:

run-with-bundler()
{
    if bundler-installed && within-bundled-project; then
        bundle exec "$@"
    else
        "$@"
    fi
}

我所使用的版本缺少$@引號,從而導致ruby行為異常。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM