Moffus пишет:
1. Ну таки да.
2. А давайте. Может тоже замутю

Оригинальный код взят с просторов интернета и допилен до рабочего состояния, добавлены влажность, давление. Если что не нужно просто # вначале строки
из веры запуск по сцене файлика pogoda.php - нужен web сервер с включенным php
<?php
$output = shell_exec('bash /usr/home/pogoda.sh');
echo "<pre>$output</pre>";
?>
вот ниже сам pogoda.sh
#!/bin/sh
# Здесь надо вставить свою ссылку с worldweatheronline.com, для этого достаточно зарегистрироваться. где ЗДЕСЬКЛЮЧССАЙТА вписать свой key, где Saint-Petersburg свой город
LINK='http://api.worldweatheronline.com/premium/v1/weather.ashx?key=ЗДЕСЬКЛЮЧССАЙТА&q=Saint-Petersburg,Russia&format=csv&num_of_days=2'
wget -nv -O /tmp/weather $LINK
# Прогноз на сегодняшний день
TEMP_NOW=`cat /tmp/weather | awk NR==12 | cut -f 2 -d \,` # Температура сейчас
echo "Температура сейчас: $TEMP_NOW С";
HUM_NOW=`cat /tmp/weather | awk NR==12 | cut -f 12 -d \,` # Влажность сейчас
echo "Влажность сейчас: $HUM_NOW %";
PRE_NOW=`cat /tmp/weather | awk NR==12 | cut -f 14 -d \,` # Давление сейчас для мм рт ст умножить на 0.75006375541921
PRE_NOW=`echo $PRE_NOW*0.75 | bc | sed 's/+//g' | sed 's/-//g' | awk '{ split($0, n, "."); print n[1] + (substr(n[2], 1, 1) >= 5 ? 1 : 0) }'` # Перевод в мм рт ст
echo "Давление сейчас: $PRE_NOW миллиметров ртутного столба";
TEMP_MAX=`cat /tmp/weather | awk NR==13 | cut -f 2 -d \,` # Максимальная температура
echo "Максимальная температура: $TEMP_MAX С";
TEMP_MIN=`cat /tmp/weather | awk NR==13 | cut -f 4 -d \,` # Минимальная температура
echo "Минимальная температура: $TEMP_MIN С";
WIND_SPEED=`cat /tmp/weather | awk NR==12 | cut -f 8 -d \,` # Скорость ветра в км/ч
echo "Скорость ветра в км/ч: $WIND_SPEED";
WIND_SPEED=`echo $WIND_SPEED/3.6 | bc | sed 's/+//g' | sed 's/-//g' | awk '{ split($0, n, "."); print n[1] + (substr(n[2], 1, 1) >= 5 ? 1 : 0) }'` # Перевод скорости ветра в м/с
echo "Скорость ветра в м/c: $WIND_SPEED";
WIND_RUMB=`cat /tmp/weather | awk NR==12 | cut -f 10 -d \,` # Направление ветра
DESCR=`cat /tmp/weather | awk NR==12 | cut -f 6 -d \,` # Описание погоды
PLUS_MINUS=`echo $TEMP_NOW | sed 's/-/минус/' | sed 's/[0-9]//g'` # Меняет символ "-" на "минус"
TEMP_NOW=`echo $TEMP_NOW | sed 's/-//'` # Удаляет "-"
case "$TEMP_NOW" in
[0]|[5-9]|1?|20|2[5-9]|30|3[5-9]|40|4[5-9] ) echo "Прослушайте пожалуйста Прогноз погоды Сейчас в Санкт Петербурге температура на улице $PLUS_MINUS $TEMP_NOW градусов" | festival --tts --language russian;;
[2-4]|2[2-4]|3[2-4]|4[2-4] ) echo "Прослушайте пожалуйста Прогноз погоды Сейчас в Санкт Петербурге температура на улице $PLUS_MINUS $TEMP_NOW градуса" | festival --tts --language russian;;
1|21|31|41 ) echo "Прослушайте пожалуйста Прогноз погоды Сейчас в Санкт Петербурге температура на улице $PLUS_MINUS $TEMP_NOW градус" | festival --tts --language russian;;
esac
#PLUS_MINUS=`echo $TEMP_MAX | sed 's/-/минус/' sed 's/[0-9]//g'`
#TEMP_MAX=`echo $TEMP_MAX | sed 's/-//'`
case "$TEMP_MAX" in
[0]|[5-9]|1?|20|2[5-9]|30|3[5-9]|40|4[5-9] ) echo "Максимальная температура сегодня $PLUS_MINUS $TEMP_MAX градусов" | festival --tts --language russian;;
[2-4]|2[2-4]|3[2-4]|4[2-4] ) echo "Максимальная температура сегодня $PLUS_MINUS $TEMP_MAX градуса" | festival --tts --language russian;;
1|21|31|41 ) echo "Максимальная температура сегодня $PLUS_MINUS $TEMP_MAX градус" | festival --tts --language russian;;
esac
PLUS_MINUS=`echo $TEMP_MIN | sed 's/-/минус/' | sed 's/[0-9]//g'`
TEMP_MIN=`echo $TEMP_MIN | sed 's/-//'`
case "$TEMP_MIN" in
[0]|[5-9]|1?|20|2[5-9]|30|3[5-9]|40|4[5-9] ) echo "Минимальная температура сегодня $PLUS_MINUS $TEMP_MIN градусов" | festival --tts --language russian;;
[2-4]|2[2-4]|3[2-4]|4[2-4] ) echo "Минимальная температура сегодня $PLUS_MINUS $TEMP_MIN градуса" | festival --tts --language russian;;
1|21|31|41 ) echo "Минимальная температура сегодня $PLUS_MINUS $TEMP_MIN градус" | festival --tts --language russian;;
esac
# Здесь надо добавить остальное описание (не все описания, добавить остальное самому)
case "$DESCR" in
"Light sleet" ) echo "в течении дня будет дождь со снегом" | festival --tts --language russian;;
"Overcast" ) echo "в течении дня будет +облачно" | festival --tts --language russian;;
"Light Rain Shower" ) echo "в течении дня будет идти небольшой дождь возможен ливень" | festival --tts --language russian;;
"Sunny" ) echo "в течении дня будет с+олнечно" | festival --tts --language russian;;
"Light Rain With Thunderstorm" ) echo "в течении дня возможен небольшой дождь с грозой" | festival --tts --language russian;;
"Heavy Rain With Thunderstorm" ) echo "в течении дня возможен сильный дождь с грозой" | festival --tts --language russian;;
esac
echo "Описание погоды: $DESCR";
# Ветер
case "$WIND_SPEED" in
[5-9]|1?|20|2[5-9]|30|3[5-9]|40|4[5-9] ) METR="метров";;
[2-4]|2[2-4]|3[2-4]|4[2-4] ) METR="метра";;
1|21|31|41 ) METR="метр";;
esac
# Так как не охота заморачиваться со всякими северо-северо-востоками, будет так
case "$WIND_RUMB" in
N ) WIND_RUMB="северный";;
NNE ) WIND_RUMB="северный";;
NE ) WIND_RUMB="северо-восточный";;
ENE ) WIND_RUMB="северо-восточный";;
E ) WIND_RUMB="восточный";;
ESE ) WIND_RUMB="восточный";;
SE ) WIND_RUMB="юго-восточный";;
SSE ) WIND_RUMB="юго-восточный";;
S ) WIND_RUMB="южный";;
SSW ) WIND_RUMB="южный";;
SW ) WIND_RUMB="юго-западный";;
WSW ) WIND_RUMB="юго-западный";;
W ) WIND_RUMB="западный";;
WNW ) WIND_RUMB="западный";;
NW ) WIND_RUMB="северо-западный";;
NNW ) WIND_RUMB="северо-западный";;
esac
echo "Направление ветра: $WIND_RUMB";
echo "и ветер $WIND_RUMB $WIND_SPEED $METR в секунду";
echo "и ветер $WIND_RUMB $WIND_SPEED $METR в секунду" | festival --tts --language russian;
echo "Влажность воздуха сейчас $HUM_NOW процентов";
echo "Влажность воздуха сейчас $HUM_NOW процентов" | festival --tts --language russian;
echo "Давление сейчас $PRE_NOW миллиметров ртутного столба";
echo "Давление сейчас $PRE_NOW миллиметров ртутного столба" | festival --tts --language russian;
case "$TEMP_NOW" in
[0]|[5-9]|1?|20|2[5-9]|30|3[5-9]|40|4[5-9] ) echo "Повторяю Сейчас в Санкт Петербурге температура на улице $PLUS_MINUS $TEMP_NOW градусов Спасибо за внимание" | festival --tts --language russian;;
[2-4]|2[2-4]|3[2-4]|4[2-4] ) echo "Повторяю Сейчас в Санкт Петербурге температура на улице $PLUS_MINUS $TEMP_NOW градуса Спасибо за внимание" | festival --tts --language russian;;
1|21|31|41 ) echo "Повторяю Сейчас в Санкт Петербурге температура на улице $PLUS_MINUS $TEMP_NOW градус Спасибо за внимание" | festival --tts --language russian;;
esac
#удаляем файл с температурой
rm /tmp/weather
exit
иногда сайт отдает описание погоды в строке 2 раза (Light Rain Shower, Rain Shower), из-за этого сбивается все что идет дальше по списку, так как сбивается счетчик в строке какие искать параметры
также сайте отдает еще видимость и прочие параметры, кому надо можно и их проговаривать
как ставить festival есть статья на хабре
habrahabr.ru/post/88193/