ruby - wie richtig analysiert, unterschiedliche Anzahl von Kommandozeilen-Argumenten

n00b-Frage-Alarm!
hier ist das problem:
Ich bin erstellen Sie ein shell-Skript, das dauert mindestens 3 Argumente: ein string eine Zeilennummer, und mindestens eine Datei.

Habe ich ein Skript geschrieben, wird akzeptieren, dass GENAU 3 Argumente, aber ich weiß nicht, wie, um mehrere Dateinamen Argumente.

hier sind die relevanten Teile meines Codes (das überspringen der Schrift zurück in die Datei, etc):

#!/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)

jetzt weiß ich, dass es einfach ist zu schreiben, ein block, durchläuft ALLE Argumente:

ARGV.each do |a|
   puts a 
end

aber ich muss NUR eine Schleife durch die args aus ARGV[2] (die erste Datei-name) zu den letzten Dateinamen.

Ich weiß, dass es - mindestens - mindestens eine einfache Möglichkeit, dies zu tun, aber ich kann einfach nicht sehen, was Sie im moment ist!

in jedem Fall - ich würde mehr als glücklich sein, wenn jemand nur zeigen Sie mir ein tutorial oder ein Beispiel, ich bin sicher, es gibt viele gibt - aber ich kann nicht scheinen, um Sie zu finden.

Dank

  • Super Antworten von allen! vielen Dank an alle. es ist in der Regel nicht der Fall, dass ich verstehe, oder nutzen Sie viele der Antworten, die ich hier bekommen - also entweder bin ich klüger oder war dies eine besonders leichte Frage, oder Ihr seid einfach guter Erklärer... oder einige combo-alle drei! cheers, B
Schreibe einen Kommentar