Ruby Language
Opdrachtregel-apps
Zoeken…
Hoe een opdrachtregelprogramma te schrijven om het weer op postcode te krijgen
Dit is een relatief uitgebreide tutorial over het schrijven van een opdrachtregelprogramma om het weer af te drukken vanuit de postcode die aan het opdrachtregelprogramma wordt verstrekt. De eerste stap is om het programma in robijn te schrijven om deze actie te doen. Laten we beginnen met het schrijven van een methode weather(zip_code)
(deze methode vereist de edelsteen yahoo_weatherman
. Als je deze edelsteen niet hebt, kun je deze installeren door gem install yahoo_weatherman
typen vanaf de opdrachtregel)
require 'yahoo_weatherman'
def weather(zip_code)
client = Weatherman::Client.new
client.lookup_by_location(zip_code).condition['temp']
end
We hebben nu een zeer eenvoudige methode die het weer geeft wanneer er een postcode aan wordt gegeven. Nu moeten we er een opdrachtregelprogramma van maken. Laten we heel snel kijken hoe een opdrachtregelprogramma wordt aangeroepen vanuit de shell en de bijbehorende variabelen. Wanneer een tool zoals dit tool argument other_argument
, is er in robijn een variabele ARGV
die een array is gelijk aan ['argument', 'other_argument']
. Laten we dit nu in onze applicatie implementeren
#!/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])
Mooi zo! Nu hebben we een opdrachtregeltoepassing die kan worden uitgevoerd. Let op de she-bang- regel aan het begin van het bestand ( #!/usr/bin/ruby
). Hierdoor kan het bestand een uitvoerbaar bestand worden. We kunnen dit bestand als weather
opslaan. ( Opmerking : sla dit niet op als weather.rb
, de bestandsextensie is niet nodig en de she-bang vertelt alles wat u moet vertellen dat dit een ruby-bestand is). Nu kunnen we deze opdrachten in de shell uitvoeren (typ niet de $
).
$ chmod a+x weather
$ ./weather [ZIPCODE]
Nadat we hebben getest of dit werkt, kunnen we dit nu sym-linken aan /usr/bin/local/
door deze opdracht uit te voeren
$ sudo ln -s weather /usr/local/bin/weather
Het weather
kan nu op de opdrachtregel worden opgeroepen, ongeacht de map waarin u zich bevindt.