我已将问题缩小到以下简单的代码段:
#!/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 :(得分:2)
在这里找到答案:How can same program in ruby accept input from user as well as command line arguments
在使用ARGV.clear
之前必须gets
。