Автор Тема: Помощ за написването на едно скриптче  (Прочетена 4726 пъти)

PaperNick

  • Напреднали
  • *****
  • Публикации: 295
  • Window Manager: Xfce
    • Профил
Re: Помощ за написването на едно скриптче
« Отговор #15 -: Aug 25, 2014, 20:14 »
Благодаря за подробното обяснение neter, вече ми е много по-ясно.

Мисля, че вече имам достатъчно материал да човъркам. Благодаря на всички за идеите и подкрепата :)
Активен

Practice

PaperNick

  • Напреднали
  • *****
  • Публикации: 295
  • Window Manager: Xfce
    • Профил
Re: Помощ за написването на едно скриптче
« Отговор #16 -: Aug 29, 2014, 22:28 »
Днес имах малко свободно време и реших да напиша скрипта. Идеята на Jet да използвам cron и at ми се стори най-лесна за реализиране, и затова се захванах с нея.

Ето го и самия скрипт:
Код
GeSHi (Bash):
  1. #!/bin/bash
  2.  
  3. WOEID="839722" # From weather.yahoo.com link for your city
  4.  
  5. # Get weather and dump into temp file
  6. if $(wget --no-cache -q "http://weather.yahooapis.com/forecastrss?w=$WOEID" -O /tmp/time);
  7. then
  8. mv /tmp/time /tmp/sunset.TMP
  9. fi
  10.  
  11. Sunrise=`cat /tmp/sunset.TMP | grep astronomy | sed -e 's/.*sunrise="//g' | sed -e 's/ .*//g'`
  12.  
  13. Sunset=`cat /tmp/sunset.TMP | grep astronomy | sed -e 's/.*sunset="//g' | sed -e 's/ .*//g'`
  14. let hourSunset=`echo $Sunset | cut -d: -f1`+12
  15. minuteSunset=`echo $Sunset | cut -d: -f2`
  16. sunset24=$hourSunset:$minuteSunset;
  17.  
  18. # Converts the Sunrise to Timestamp with the current date
  19. dateOnly=`date +'%Y-%m-%d '`; # Current date with space in the end
  20.  
  21. sunriseForStamp=$dateOnly$Sunrise:00;
  22. sunriseStamped=`date -d "$sunriseForStamp" "+%s"`
  23.  
  24. # Converts the Sunset to Timestamp with the current date
  25. sunsetForStamp=$dateOnly$sunset24:00;
  26. sunsetStamped=`date -d "$sunsetForStamp" "+%s"`
  27.  
  28. # Converts Local time to Timestamp
  29. localTime=`date +'%Y-%m-%d %H:%M:00'`;
  30. localTimeStamped=`date -d "$localTime" "+%s"`
  31.  
  32. # Sunrise
  33. if [ $localTimeStamped -le $sunriseStamped ]; then
  34. redshiftgui
  35. fi
  36.  
  37. # Sunset
  38. if [ $localTimeStamped -lt $sunsetStamped ]; then
  39. `echo "export DISPLAY=:0 && /usr/bin/redshiftgui" | at $sunset24 today`;
  40.  
  41. elif [ $localTimeStamped -ge $sunsetStamped ]; then
  42. redshiftgui
  43. fi

След това пуснах един cron job на скрипта и всичко се автоматизира.

Като цяло ми беше доста полезно, защото понаучах синтакса на Bash.
Благодаря отново на всички отзовали се, без вашата помощ нямаше да успея да го напиша. Рядко се срещат печени хора като вас [_]3
« Последна редакция: Aug 29, 2014, 22:30 от PaperNick »
Активен

Practice