Guest User

Horloge Parlante Bash Linux

a guest
Apr 27th, 2020
226
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.16 KB | None | 0 0
  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
Add Comment
Please, Sign In to add comment