n00b प्रश्न चेतावनी! यहां समस्या है: मैं एक शेल स्क्रिप्ट बना रहा हूं जिसमें कम से कम 3 तर्क होते हैं: एक स्ट्रिंग, एक पंक्ति संख्या, और कम से कम एक फ़ाइल।ruby - कमांड लाइन तर्कों की अलग-अलग संख्याओं को सही ढंग से कैसे पार्स करें
मैंने एक स्क्रिप्ट लिखी है जो वास्तव में 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] (पहली फ़ाइल नाम) से तर्कों के माध्यम से लूप की आवश्यकता है।
मुझे पता है कि कम से कम - ऐसा करने के लिए कम से कम एक आसान तरीका है, लेकिन मैं नहीं देख सकता कि यह इस समय क्या है!
किसी भी मामले में - अगर कोई मुझे ट्यूटोरियल या उदाहरण में इंगित कर सकता है तो मुझे खुशी होगी, मुझे यकीन है कि वहाँ बहुत सारे हैं - लेकिन मुझे उन्हें नहीं लगता है।
धन्यवाद
हर किसी से महान जवाब! सबको धन्यवाद। आमतौर पर यह मामला नहीं है कि मैं समझता हूं या यहां कई उत्तरों का उपयोग कर सकता हूं - इसलिए या तो मैं समझदार हो रहा हूं या यह एक विशेष रूप से आसान सवाल था या आप लोग सिर्फ अच्छे व्याख्याकर्ता हैं ... या तीनों के कुछ कॉम्बो! चीयर्स, बी –