如何获取用户输入ARGV.first
并将其转换为字符串以便我可以搜索特定文本?
我尝试创建checkifinstring = #{ARGV.first}.join("")
`checkifinstring =〜/ s /
答案 0 :(得分:1)
如果你已经阅读了ARGV的任何内容,你就会发现它是一个字符串数组。
因为它是一个数组,你可以走它,从中提取单个元素,或者加入元素来制作一个长字符串。
尝试编写一些代码,并使用一些额外的参数从命令行执行它。插件行如:
puts ARGV.first
puts ARGV.last
puts ARGV.join(' ')
ARGV.each_with_index do |arg, i|
puts "arg ##{ i } ==> #{ arg }"
end
第一行将返回传递给脚本的第一个参数,第二行将是最后一个,第三行将是传入的命令的合理传真。其余行将返回传递给脚本的每个参数及其索引号。
我将其保存为'test.rb'并从命令行运行:
ruby ~/Desktop/test.rb one two three four
得到了这个输出:
one
four
one two three four
arg #0 ==> one
arg #1 ==> two
arg #2 ==> three
arg #3 ==> four
一旦你知道了这些东西,剩下的就很简单了:
ARGV.first['on'] # => "on"
ARGV.first['an'] # => nil
如果上述内容没有意义,那么请深入研究String[]
及其对子字符串匹配的使用。
如果你想使用命令行参数,我强烈建议你不要试图重新发明你自己的系统来传递它们,而是依赖Ruby的OptionParser类。它更加复杂和强大,并且允许您使用标志,可选和必需参数,长名称和短名称,内置帮助为脚本提供标准命令行界面,并且可以将字符串中的输入值强制转换为整数和数组。 OptionParser的文档不是很好,但我们可以帮助您。
答案 1 :(得分:0)
ARGV包含用于运行ruby的命令行参数,第一个值包含可执行文件的名称。
返回ARGV数组,其中包含传递给脚本的参数,每个元素一个。
例如:
$ ruby argv.rb file1 file2
ARGV #=> ["file1", "file2"]
ARGV.first #=> "file1"
因此,根据您的问题,如果您获得了字符串数组,则可以轻松地从该数组中搜索输入字符串
ARGV.select{|f| f == "file1"}
希望它能帮到你