Strona 1 z 1

[+] Skrypt w bashu - zegar kukułka

: 14 września 2011, 11:46
autor: spook
Witam.
P
roszę o pomoc w utworzeniu prostego skryptu, który będzie uruchamiał odtwarzanie sampli w formacie .wav za pomocą:

Kod: Zaznacz cały

aplay
Sampli będzie 12 ulokowanych w katalogu .sample i zależy mi na tym by odtwarzane były te o numerach zgodnych z aktualną godziną np. o godz 11 odtwarzany będzie dźwięk kukulka_11.wav, o godz 12 kukulka_12. wav, o godz 13 kukulka_1.wav, czyli podobnie jak to jest w tradycyjnej kukułce wiszącej na ścianie. Za pomocą Google ciężko było mi wyszukać odpowiedni skrypt, a napisany samodzielnie nie działa.

Kod: Zaznacz cały

#!/bin/bash

godzina=`date +%H:%M`
if [ "$godzina" = "10:00" ]; then
    exec aplay /home/spook/cuckoo_10.wav &
else

if [ "$godzina" = "11:00" ]; then
    exec aplay /home/spook/cuckoo_11.wav &

fi

: 14 września 2011, 17:20
autor: pyrion
Zamiast instrukcji if użyj case.

: 15 września 2011, 07:49
autor: spook
Witam. Niestety po wprowadzeniu zmian nadal otrzymywałem komunikat w kosoli:

Kod: Zaznacz cały

 spook@debian:~$ ~/.scripts/cuckoo.sh
/home/spook/.scripts/cuckoo.sh: line 15: błąd składni przy nieoczekiwanym znaczniku `then'
/home/spook/.scripts/cuckoo.sh: line 15: `   [ "$mins" = "00" ]; then' 
Zmodyfikowałem genialny w swojej prostocie skrypt wyszukany w google, który po małej modyfikowacji działa na moim systemie bez zarzutu :)

Kod: Zaznacz cały

 #!/bin/bash

# basic.sh - a talking clock using voice samples (basic version)
# more information available at http://www.jumpstation.co.uk/scripts/talkingclock/

hours=`date +"%-l"`
mins=`date +"%-M"`
# ampm=`date +"%-P"`

if [ "$mins" = "30" ]; then
aplay /home/spook/.sample/$mins.wav

else
aplay /home/spook/.sample/$hours.wav
fi


# aplay $ampm.wav