2011-12-29 112 views
3

我已經縮小問題到下面簡單的代碼片段閱讀:故障傳遞的命令行參數的Ruby腳本和命令行

#!/usr/bin/env ruby 

print "Enter your name: " 
name = gets.chomp 
puts "Hello #{name}" 

從OS X的終端被稱爲像這樣ruby a.rb時也能正常工作。但是通過命令行參數這樣ruby a.rb 123導致此錯誤:

a.rb:4:in `gets': No such file or directory - 123 (Errno::ENOENT) 
    from a.rb:4 

我的目標是命令行參數傳遞給腳本從鍵盤讀取輸入。

是什麼導致上述錯誤?

+0

[ruby中的同一個程序如何接受來自用戶的輸入以及命令行參數](http://stackoverflow.com/questions/7399618/how-can-same-program-in-ruby-accept -input-from-user-as-well-as-command-line-argu) – 2011-12-29 22:49:16

+1

你應該看看使用[OptionParser](http://rubydoc.info/stdlib/optparse/frames)。它將爲您處理清理工作,併爲您提供大量的命令行處理,而不會有太多麻煩。 – 2011-12-29 22:51:39

回答