2012-10-12 5 views
2

Je voulais écrire un petit script qui affiche une image ou joue une chanson à un moment donné. Quel est le meilleur moyen (qui consomme moins de RAM) de le faire? Une façon que je pensais est de demander récursivement l'heure en utilisant la commande date et exécutez-le via une boucle for (vérifie les heures) dans une boucle for (vérifie les minutes) jusqu'à ce que l'heure atteigne l'heure prédéfinie.Script d'alarme dans bash shell

Est-ce la bonne approche? Y a-t-il d'autres façons intelligentes de l'écrire?

Répondre

4

Eh bien, je pense que le meilleur moyen serait de créer un travail cron.

Avec cron vous n'avez pas à vous soucier de la synchronisation, etc., vous créez simplement une tâche. Jetez un oeil à son wiki et manuel, c'est vraiment simple.

Vous pouvez trouver un exemple pour configurer les choses here. Il est basé sur Mint Linux, mais devrait fonctionner sur n'importe quelle distribution.

2

Dans votre crontab:

0 7 * * * DISPLAY=:0 display /path/to/image.png; mplayer /path/to/sound.ogg 

qui affiche image.png et jouer sound.ogg chaque jour à 7 heures.

L'adapter à vos besoins.

  • display est livré avec imagemagick
  • mplayer est livré avec mplayer
0

Cron est idéal pour les tâches en cours d'exécution en même temps (s) chaque jour/semaine/mois. Si vous souhaitez simplement exécuter une tâche ultérieurement, utilisez at. Une bonne chose à propos de at est qu'il s'exécute dans une copie de votre environnement actuel, contrairement à cron.