Szukaj…


Jak napisać narzędzie wiersza polecenia, aby uzyskać pogodę według kodu pocztowego

Będzie to stosunkowo obszerny samouczek, jak napisać narzędzie wiersza polecenia, aby wydrukować pogodę z kodu pocztowego dostarczonego do narzędzia wiersza polecenia. Pierwszym krokiem jest napisanie programu w języku ruby, aby wykonać tę akcję. Zacznijmy od napisania metody weather(zip_code) (Ta metoda wymaga klejnotu yahoo_weatherman . Jeśli nie masz tego klejnotu, możesz go zainstalować, wpisując gem install yahoo_weatherman z wiersza poleceń)

require 'yahoo_weatherman'

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

Mamy teraz bardzo podstawową metodę, która podaje pogodę, gdy podany zostanie kod pocztowy. Teraz musimy przekształcić to w narzędzie wiersza poleceń. Bardzo szybko przyjrzyjmy się, jak narzędzie wiersza poleceń jest wywoływane z powłoki i powiązanych zmiennych. Kiedy narzędzie jest wywoływane jak ten tool argument other_argument , w ruby znajduje się zmienna ARGV która jest tablicą równą ['argument', 'other_argument'] . Teraz zaimplementujmy to w naszej aplikacji

#!/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])

Dobry! Teraz mamy aplikację wiersza poleceń, którą można uruchomić. Zwróć uwagę na linię she-bang na początku pliku ( #!/usr/bin/ruby ). Dzięki temu plik staje się plikiem wykonywalnym. Możemy zapisać ten plik jako weather . ( Uwaga : nie zapisuj tego jako weather.rb , rozszerzenie pliku nie jest potrzebne, a she-bang mówi cokolwiek musisz powiedzieć, że jest to plik ruby). Teraz możemy uruchomić te polecenia w powłoce (nie wpisuj $ ).

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

Po przetestowaniu, czy to działa, możemy teraz połączyć to z /usr/bin/local/ , uruchamiając to polecenie

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

Teraz weather można wywoływać z wiersza poleceń bez względu na katalog, w którym się znajdujesz.



Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow