Powiadomienie o zapytaniu n00b! tutaj jest problem: Tworzę skrypt powłoki, który pobiera co najmniej 3 argumenty: ciąg, numer linii i co najmniej jeden plik.ruby - jak poprawnie przeanalizować zmienną liczbę argumentów linii poleceń:
Napisałem skrypt, który akceptuje DOKŁADNIE 3 argumenty, ale nie wiem, jak obsługiwać wiele argumentów nazwy pliku.
oto odpowiednie części mojego kodu (z pominięciem zapisu z powrotem do pliku 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)
teraz wiem, że to łatwo napisać blok, który będzie iterację wszystkich argumentów:
ARGV.each do |a|
puts a
end
, ale potrzebuję TYLKO przechodzić przez args z ARGV [2] (pierwsza nazwa pliku) do ostatniej nazwy pliku.
Wiem, że musi istnieć - przynajmniej jeden prosty sposób, aby to zrobić, ale po prostu nie widzę, co to jest w tej chwili!
w każdym razie - Byłbym bardziej niż szczęśliwy, gdyby ktoś mógł po prostu wskazać mi tutorial lub przykład, jestem pewien, że jest ich wiele - ale nie mogę ich znaleźć.
dzięki
wielkie odpowiedzi od wszystkich! Dziękuję wszystkim. Zazwyczaj nie jest tak, że rozumiem lub mogę korzystać z wielu odpowiedzi, które tu dostaję - więc albo robię się mądrzejszy, albo to było szczególnie łatwe pytanie, albo jesteście dobrymi tłumaczami ... albo jakimś kombinatem wszystkich trzech! Pozdrawiam, B –