ruby中的相同程序如何接受来自用户的输入以及命令行参数
我的ruby脚本从命令行参数获取某些输入。 它检查是否缺少任何命令行参数,然后它会提示用户输入。 但我无法使用获取来自用户的输入。
示例代码:test.rb
name="" ARGV.each do|a| if a.include?('-n') name=a puts "Argument: #{a}" end end if name=="" puts "enter name:" name=gets puts name end
运行脚本: ruby test.rb raghav-k
导致错误:
test.rb:6:in `gets': No such file or directory - raghav-k (Errno::ENOENT) from test.rb:6:in `gets' from test.rb:6:in `'
任何指向这个方向的人都会非常感激谢谢桑迪
如果没有命令行参数, gets
将只读取真正的$stdin
(即用户)。 否则,它会将这些参数作为文件连接为虚拟$stdin
。
您可以使用STDIN.gets
确保始终使用正确的function。
您也可以随时删除ARGV
的参数(或一次性删除它们),您的gets
应该正常工作。