ruby ​​- как правильно разбирать разное количество аргументов командной строки

предупреждение о вопросе n00b! вот проблема: Я создаю сценарий оболочки, который принимает минимум 3 аргумента: строку, номер строки и хотя бы один файл.

Я написал сценарий, который будет принимать ТОЧНО 3 аргумента, но я не знаю, как обрабатывать несколько аргументов имени файла.

вот соответствующие части моего кода (пропуск записи обратно в файл и т. Д.):

#!/usr/bin/env ruby

the_string = ARGV[0] 
line_number = ARGV[1]
the_file = ARGV[2] 

def insert_script(str, line_n, file)
  f = file
  s = str
  ln = line_n.to_i

  if (File.file? f)
    read_in(f,ln,s)
  else 
    puts "false"
  end
end

def read_in(f,ln,s)
  lines = File.readlines(f)
  lines[ln] = s + "\n"
  return lines
end

# run it
puts insert_script(the_string, line_number, the_file)

теперь я знаю, что легко написать блок, который будет перебирать ВСЕ аргументы:

ARGV.each do |a|
   puts a 
end

но мне нужно ТОЛЬКО пропустите аргументы от ARGV [2] (имя первого файла) до имени последнего файла.

Я знаю, что должен быть - как минимум - хотя бы один простой способ сделать это, но я просто не могу понять, что это такое!

в любом случае - я был бы более чем счастлив, если бы кто-то мог просто указать мне на учебник или пример, я уверен, что их много, но я не могу их найти.

спасибо

5
задан Bennett Von Bennett 2 February 2012 в 01:59
поделиться