2012-11-05 128 views
3

我已經開始在Ruby中獲得選項解析器來處理大量的成功。不幸的是,ruby-docs對我所要做的並不是特別有用。是否可以將多個值傳遞給一個參數,或者將一個參數定義爲一個數組並將多個值傳遞給它?將空間值傳遞給Ruby腳本

require 'optparse' 

@user_name = nil 

opts = OptionParser.new 
opts.on("-n name", "--name name", "Name Input"){|n| 
@user_name = n 
} 
opts.parse!(ARGV) 

if @user_name.nil? == false 
    puts @user_name 
else 
    puts "Nil Value" 
end 

現在,如果你運行:

ruby nametest.rb -n John Doe 

您將獲得:

John 

我期待有兩個打印屏幕上的名字和姓氏。

回答

5

這不是一個ruby問題,而是大多數命令行解析器的工作原理。空格分隔了一個標記,因此您需要使用引號或轉義空格字符進行分組。

ruby nametest.rb -n "John Doe" 
# or 
ruby nametest.rb -n John\ Doe 
+0

看起來我必須想出另一種抓取用戶信息的方式。謝謝! – SecurityGate