Created
January 16, 2015 20:39
-
-
Save markogresak/32b9c2f572f733faaff3 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #!/bin/bash | |
| # povezava do weather apija s poizvedbo za mesto Ljubljana | |
| url="http://api.openweathermap.org/data/2.5/weather?q=Ljubljana,si" | |
| # Primer rezultata poizvedbe: | |
| # (Za celoten rezultat odprite url v brskalniku) | |
| # {...,"main":{"temp":277.447, ...}, ...} | |
| # main.temp je v Kelvinih, za pretvorbo v Celzije odstejemo 273.15 | |
| # Vrne trenutno temperaturo | |
| function getTemperature { | |
| # printf %.1f zaokrozi temperaturo na 1 decimalno mesto natancno | |
| # curl naredi poizvedbo na $url, -s (silent) ne izpise progressa | |
| # grep -o za izpis samo rezultata, -P za perl regexp | |
| # Razlaga regexa: | |
| # - (?<="temp":) - poglej nazaj (lookbehind) za niz "temp": | |
| # - [0-9.]*? - isci [0-9.] skupino znakov 0-9 in ., * za poljubno st. teh znakov | |
| # in ? za non-greedy zajem (najmanjsa mozna skupina znakov) | |
| # - (?=,) - poglej naprej (lookahead) za , | |
| # Regex za zgornji primer rezultata vrne samo vrednost polja main.temp | |
| # - 273.15 rezultat regexa pretvori v Celzije | |
| # bc pretvori vrednost v decimalno stevilo, s katerim operira printf | |
| printf %.1f $(echo "$(curl -s $url | grep -oP '(?<="temp":)[0-9.]*?(?=,)') - 273.15" | bc) | |
| } | |
| # cas cakanja med poizvedbami (v sekundah) | |
| sleepTime=3600 | |
| outFile="temperature.log" | |
| while true; do | |
| printf "%s %.1f\n" "$(date +"[%A, %d. %m. %Y, %H:%M:%S]")" $(getTemperature) >> $outFile | |
| sleep $sleepTime | |
| done |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment