вторник, 23 марта 2010 г.

часы с кукушкой - howto :)

Решил выложить скрипты, которые кукуют и говорят время :) Может кому еще пригодится или мне на будущее :)

Этот говорит текущее время (списан отсюда):

#!/bin/sh

MIN=$(date +"%M")

HR=$(date +"%H")

INTRO="Время. "

case $MIN in
"00") MIN="ровно";;
"01") MIN="одна. минута.";;
"02") MIN="две. минуты. ";;
"03") MIN="три. минуты. ";;
"04") MIN="четрыре. минуты. ";;
"05") MIN="пять. минут. ";;
"06") MIN="шесть. минут. ";;
"07") MIN="семь. минут. ";;
"08") MIN="весемь. минут. ";;
"09") MIN="девять. минут. ";;
"10") MIN="десять. минут. ";;
"11") MIN="одинадцать. минут. ";;
"12") MIN="двенадцать. минут. ";;
"13") MIN="тринадцать. минут. ";;
"14") MIN="четырнадцать. минут. ";;
"15") MIN="пятнадцать. минут. ";;
"16") MIN="шестнадцать. минут. ";;
"17") MIN="семнадцать. минут. ";;
"18") MIN="восемнадцать. минут. ";;
"19") MIN="девятнадцать. минут. ";;
"20") MIN="двадцать. минут. ";;
"21") MIN="двадцать. одна. минута. ";;
"22") MIN="двадцать. две. минуты. ";;
"23") MIN="двадцать. три. минуты. ";;
"24") MIN="двадцать. четыре. минуты. ";;
"25") MIN="двадцать. пять. минут. ";;
"26") MIN="двадцать. шесть. минут. ";;
"27") MIN="двадцать. семь. минут. ";;
"28") MIN="двадцать. восемь. минут. ";;
"29") MIN="двадцать. девять. минут. ";;
"30") MIN="тридцать. минут. ";;
"31") MIN="тридцать. одна. минута. ";;
"32") MIN="тридцать. две. минуты. ";;
"33") MIN="тридцать. три. минуты. ";;
"34") MIN="тридцать. четыре. минуты. ";;
"35") MIN="тридцать. пять. минут. ";;
"36") MIN="тридцать. шесть. минут. ";;
"37") MIN="тридцать. семь. минут. ";;
"38") MIN="тридцать. восемь. минут. ";;
"39") MIN="тридцать. девять. минут. ";;
"40") MIN="сорок. минут. ";;
"41") MIN="сорок. одна. минута. ";;
"42") MIN="сорок. две. минуты. ";;
"43") MIN="сорок. три. минуты. ";;
"44") MIN="сорок. четыре. минуты. ";;
"45") MIN="сорок. пять. минут. ";;
"46") MIN="сорок. шесть. минут. ";;
"47") MIN="сорок. семь. минут. ";;
"48") MIN="сорок. восемь. минут. ";;
"49") MIN="сорок. девять. минут. ";;
"50") MIN="пятьдесят. минут. ";;
"51") MIN="пятьдесят. одна. минута. ";;
"52") MIN="пятьдесят. две. минуты. ";;
"53") MIN="пятьдесят. три. минуты. ";;
"54") MIN="пятьдесят. четыре. минуты. ";;
"55") MIN="пятьдесят. пять. минут. ";;
"56") MIN="пятьдесят. шесть. минут. ";;
"57") MIN="пятьдесят. семь. минут. ";;
"58") MIN="пятьдесят. восемь. минут. ";;
"59") MIN="пятьдесят. девять. минут. ";;
*) MIN="непонятно. минут. ";;
esac

case $HR in
"00") HR="ноль. часов. ";;
"01") HR="один. час. ";;
"02") HR="два. часа. ";;
"03") HR="три. часа. ";;
"04") HR="четыре. часа. ";;
"05") HR="пять. часов. ";;
"06") HR="шесть. часов. ";;
"07") HR="семь. часов. ";;
"08") HR="восемь. часов. ";;
"09") HR="девять. часов. ";;
"10") HR="десять. часов. ";;
"11") HR="одиннадцать. часов. ";;
"12") HR="двенадцать. часов. ";;
"13") HR="тринадцать. часов. ";;
"14") HR="четырнадцать. часов. ";;
"15") HR="пятнадцать. часов. ";;
"16") HR="шестнадцать. часов. ";;
"17") HR="семнадцать. часов. ";;
"18") HR="восемнадцать. часов. ";;
"19") HR="девятнадцать. часов. ";;
"20") HR="двадцать. часов. ";;
"21") HR="двадцать. один. час. ";;
"22") HR="двадцать. два. часа. ";;
"23") HR="двадцать. три. часа. ";;
*) HR="непонятно. часов. ";;
esac

#Получим старую громкость
`amixer -- sget Master|grep "Left: Play"|awk '{system("echo "$4">/tmp/vol")}'`
read vol< /tmp/vol

#устанавливаем громкость
amixer -q -- sset Master playback 15

echo "$INTRO $HR $MIN" | festival --tts --language russian

#возвращаем громкость на прежний уровень
amixer -q -- sset Master playback $vol

#end


Этот просто произносит текст, переданный в параметр скрипта:


#!/bin/bash
#Получим старую громкость
`amixer -- sget Master|grep "Left: Play"|awk '{system("echo "$4">/tmp/vol")}'`
read vol< /tmp/vol

#устанавливаем громкость
amixer -q -- sset Master playback 15

#запускаем синтезатор
echo "$1" | festival --tts --language russian

#возвращаем громкость на прежний уровень
amixer -q -- sset Master playback $vol

#end


Запускаю все из крона кучкой конструкций типа

* 3 * * * ~/sayit.sh "ку-ку. ку-ку. ку-ку" && ~/saytime.sh

Комментариев нет:

Отправить комментарий