खोज…


ज़िप कोड द्वारा मौसम पाने के लिए कमांड लाइन टूल कैसे लिखें

यह कमांड लाइन टूल को प्रदान किए गए ज़िप कोड से मौसम को प्रिंट करने के लिए कमांड लाइन टूल लिखने का एक अपेक्षाकृत व्यापक ट्यूटोरियल होगा। इस क्रिया को करने के लिए पहला कदम रूबी में प्रोग्राम लिखना है। चलिए एक विधि weather(zip_code) लिखकर शुरू करते हैं (इस विधि के लिए yahoo_weatherman रत्न की आवश्यकता होती है। यदि आपके पास यह रत्न नहीं है तो आप इसे कमांड लाइन से gem install yahoo_weatherman टाइप करके gem install yahoo_weatherman कर सकते हैं)

require 'yahoo_weatherman'

def weather(zip_code)
  client = Weatherman::Client.new
  client.lookup_by_location(zip_code).condition['temp']
end

अब हमारे पास एक बहुत ही मूल तरीका है जो एक ज़िप कोड प्रदान करने पर मौसम देता है। अब हमें इसे कमांड लाइन टूल में बनाने की आवश्यकता है। बहुत जल्दी चलो चलो कैसे एक कमांड लाइन उपकरण खोल और संबंधित चर से कहा जाता है। जब किसी टूल को इस tool argument other_argument तरह कहा जाता है, तो रूबी में एक चर ARGV होता है, जो ['argument', 'other_argument'] बराबर एक सरणी होता है। अब हम इसे अपने आवेदन में लागू करते हैं

#!/usr/bin/ruby
require 'yahoo_weatherman'

def weather(zip_code)
  client = Weatherman::Client.new
  client.lookup_by_location(zip_code).condition['temp']
end 
 
puts weather(ARGV[0])

अच्छा! अब हमारे पास एक कमांड लाइन एप्लिकेशन है जिसे चलाया जा सकता है। फ़ाइल की शुरुआत में शी-बैंग लाइन ( #!/usr/bin/ruby ) पर ध्यान दें। यह फ़ाइल को एक निष्पादन योग्य बनने की अनुमति देता है। हम इस फ़ाइल को weather रूप में सहेज सकते हैं। ( नोट : इसे weather.rb रूप में सेव न करें, फ़ाइल एक्सटेंशन की कोई आवश्यकता नहीं है और शी-बैंग बताता है कि आपको जो कुछ भी बताने की आवश्यकता है वह एक रूबी फ़ाइल है)। अब हम इन कमांड को शेल में चला सकते हैं ( $ में टाइप न करें)।

$ chmod a+x weather
$ ./weather [ZIPCODE]

यह कार्य करने के बाद, अब हम इसे इस कमांड को चलाकर /usr/bin/local/ से लिंक कर सकते हैं

$ sudo ln -s weather /usr/local/bin/weather

अब weather को कमांड लाइन पर बुलाया जा सकता है, चाहे आप जिस भी डायरेक्टरी में हों।



Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow