我的 ruby 脚本从命令行参数获取某些输入。它检查是否缺少任何命令行参数,然后提示用户输入。但我无法使用 gets 从用户那里获取输入。
示例代码: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 `<main>'
任何朝这个方向的指示都将非常感激
谢谢
沙
gets
只会从真实的地方读取$stdin
(即用户)如果没有命令行参数。否则,它将把这些参数作为文件连接为虚拟文件$stdin
.
您可以使用STDIN.gets
确保您始终使用正确的功能。
您还可以从中删除参数ARGV
当你走的时候(或者一次性把它们全部删除),你的gets
应该可以正常工作。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)