Programmer un timer en shell

Résolu
Bonjour,
Je souhaiterais programmer un timer en shell.
En faite, j'aimerais que mon terminale me prévienne à une certaine heure d'un certain jour et qu'il me renvois un message par "echo"

Avez vous une idée du scripte que je dois utiliser?
Merci.
Configuration: Windows XP
Firefox 3.6

10 réponses

  1. Modérateur
    Non pas tout a fait.

    Il faut taper la commande directement dans le terminal, comme suit :

    [tmpfs]$ at now +1 minutes <ENTRÉE>
    warning: commands will be executed using (in order) a) $SHELL b) login shell c) /bin/sh
    at> echo "Hello" > /dev/pts/2 <ENTRÉE>
    at> <EOT> <CTRL+D>
    job 22 at 2010-01-29 15:00
    [tmpfs]$ 


    Tu rentre d'abord la commande at suivi de la date à laquelle elle est censée s'effectuer, et tu valides par <ENTRÉE>.
    Au prompt (at>) tu entres la commande qui doit être exécutée et éventuellement où elle doit être exécutée/affichée (dans ton cas le terminal), et tu valides par <ENTRÉE>.
    Pour terminer et sortir, tu tapes <CTRL+D> (le <EOT> ne doit pas être tapé, c'est le résultat de la combinaison de touche CTRL+D).
    1. Contributeur
      hello
      pour l'écrire sur une seule ligne
      echo "echo hello > $(tty)" | at now +2minutes
      1. Modérateur
        Merci ;-)
    2. Contributeur
      pour afficher un message dans une petite fenêtre, indépendamment du terminal
       echo "xmessage -geo 300x200 -display $DISPLAY hello"|at now+2minutes
      1. donc, pour dire 'hello' lundi 01/03 à 16h00 je peux écrire un script du genre:

        at 1600 01.03.10 echo 'hello"

        ?

        merci
        1. et les "/dev/pts/2"
          "$(tty) "

          Ils servent à quoi?

          Perso, je voudrais executer mon scripte dans 3 minutes.
          D'habitude j'écris juste :
          sh scriipte

          donc la si j'écris
          echo "sh scriipte > $(tty)" | at now +3minutes
          ça va marcher?
          1. Modérateur
            Essaie et tu verras bien :-))

            Les $(tty) et/ou dev/pts/2 c'est les terminaux où doivent s'exécuter les commandes.
        2. à cool.
          Et pour que mon script s'exécute dans le terminal en cours? Il faut que je rentre le nom de mon terminale? ...
          J'ai l'impression d'être vraiment relou ... dsl
          1. Bonjour.
            ça ne marche toujours pas.
            j'ai ecrit:
            echo "gedit fichier.txt > $(tty)" | at now plus 1 minutes

            la console m'a bien répondu : job 15 at 2010-02-01 13:53

            mais à 13: 53 j'ai rien vu!
            1. Contributeur
              essaye
              echo "gedit --display=$DISPLAY fichier.txt" | at now + 1 minutes