SHARE
TWEET

Horloge Parlante Bash Linux

a guest Apr 27th, 2020 102 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #! /bin/bash
  2. ######################
  3. ## Horloge parlante ##
  4. ######################
  5.  
  6. ## Donner les droits d'exécution :
  7. # chmod +x horloge.sh
  8.  
  9. ## Installer espeak :
  10. # sudo apt install espeak
  11.  
  12. ## Ajouter le paquet de langue améliorée pour la commande " mb/mb-fr1 " :
  13. ## Télécharger la voix Mbrola FR1 :
  14. # cd /usr/share
  15. # sudo mkdir mbrola
  16. # cd mbrola
  17. # sudo mkdir fr1
  18. # cd fr1
  19. # sudo wget https://raw.githubusercontent.com/numediart/MBROLA-voices/master/data/fr1/fr1
  20.  
  21. ## Lancer l'horloge parlante pour tester le script :
  22. # sh horloge.sh
  23. ## Changer d'heure en changeant de fuseau horaire :
  24. # cp /usr/share/zoneinfo/Europe/Athens /etc/localtime
  25. # cp /usr/share/zoneinfo/Europe/Lisbon /etc/localtime
  26. # cp /usr/share/zoneinfo/Europe/Paris /etc/localtime
  27.  
  28. ## Démarrer le script avec une tâche cron 1 minute avant le changement d'heure.
  29. # crontab -e
  30. # 59 * * * * sh /home/utilisateur/chemin/chemin/horloge.sh
  31.  
  32. ## Aucune action n'est requise ci-dessous !
  33. ## L'horloge parlante est configurée !
  34.  
  35. hmem=$(date +%-H)
  36. hnow=$(date +%-H)
  37.  
  38. while :
  39. do
  40.     # Vérifier l'heure actuelle à l'intérieur de la boucle.
  41.     hnow=$(date +%-H)
  42.    
  43.     # Afficher l'heure actuelle et l'heure mémorisée :
  44.     # echo "Heure actuelle : $hnow - Heure mémorisée : $hmem "
  45.  
  46.     if [ $hnow != $hmem ]
  47.     then
  48.  
  49.         # echo "Heure changée"
  50.         # Afficher un son différent, 11.mp3 12.mp3 ... pour chaque possibilité :
  51.         # DISPLAY=:0 /usr/bin/mplayer /home/utilisateur/chemin/chemin/$hnow.mp3
  52.  
  53.         # Synthèse vocale avec espeak :
  54.         # date "+Il est %H heure %M" | espeak -v fr
  55.  
  56.         # Affecter l'heure actuelle à une variable heure qui sera lue par espeak :
  57.         heure=$hnow
  58.         # Mettre en place une exception pour 00h qui se dit "minuit" :
  59.         if [ $heure = 00 ]
  60.         then
  61.             heure="minuit"
  62.         fi
  63.         # Mettre en place une exception pour 1h qui se dit "une" et pas "un" :
  64.         if [ $heure = 1 ]
  65.         then
  66.             heure="une heure"          
  67.         else
  68.             heure="$heure heures"
  69.         fi
  70.  
  71.         # Après avoir installé le fichier mbrola fr1 cette alerte de voix devient très sympa :
  72.         espeak "L'heure change ! ... Il est $heure" -s 100 -v mb/mb-fr1
  73.         # On affecte la nouvelle valeur à l'heure mémorisée pour que la condition ne soit plus réalisée :
  74.         hmem=$hnow
  75.  
  76.         # Tuer le script qui tournerait sinon pendant une heure. Le script sera relancé avec une tâche cron.
  77.         exit 0
  78.     else
  79.         #echo "L'heure n'a pas changée"
  80.         # espeak "L'heure n'a pas changée !" -s 100 -v mb/mb-fr1
  81.         sleep 5
  82.     fi
  83.  
  84. done
  85.  
  86. # Note concernant les processus fantômes durant les tests :
  87.  
  88. # Identifier les processus qui tournent :
  89. # ps aux
  90. # Tuer un processus avec son pid :
  91. # sudo kill -9 26550
  92.  
  93. # Lister tous les processus lancés pour le script horloge.sh
  94. # ps -ef | grep horloge.sh
  95. # Pour n'avoir que le pid :
  96. # pgrep horloge.sh
  97.  
  98. # Partagé sur : https://wiki.visionduweb.fr/index.php?title=Programmation_en_Shell_Bash_Linux#Cr.C3.A9er_son_horloge_parlante_en_Bash_sous_Linux
  99. # D'après la vidéo suivante : https://youtu.be/UbqU7rxu-eU
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
Top