n00b alerta de pregunta! aquí está el problema: Estoy creando un script de shell que toma un mínimo de 3 argumentos: una cadena, un número de línea y al menos un archivo.ruby: cómo analizar correctamente varios números de argumentos de línea de comandos
He escrito una secuencia de comandos que aceptará EXACTAMENTE 3 argumentos, pero no sé cómo manejar múltiples argumentos de nombre de archivo.
aquí es las partes pertinentes de mi código (saltarse la escritura de nuevo en el archivo 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)
ahora sé que es fácil escribir un bloque que va a recorrer todos los argumentos:
ARGV.each do |a|
puts a
end
pero necesito SOLO recorrer las args de ARGV [2] (el primer nombre de archivo) hasta el último nombre de archivo.
Sé que tiene que haber, como mínimo, al menos una forma fácil de hacerlo, ¡pero no puedo ver qué es en este momento!
en cualquier caso - Estaría más que feliz si alguien me puede indicar un tutorial o un ejemplo, estoy seguro de que hay mucho por ahí, pero parece que no puedo encontrarlos.
gracias
grandes respuestas de todo el mundo! gracias a todos. no es el caso que entiendo o puedo usar muchas de las respuestas que recibo aquí, entonces o me estoy volviendo más inteligente o esta fue una pregunta particularmente fácil o ustedes son simplemente buenos explicadores ... ¡o alguna combinación de los tres! vítores, B –