Forum Programmation.shell Script shell et timer

Posté par  .
Étiquettes : aucune
0
5
avr.
2007
Bonjour a tous...

J'ai besoin de votre aide...

Je voudrais écrire un script shell qui va lire, toutes les 3 secondes dans un répertoire la première ligne d'un fichier (elle donne le chemin d'une image), l'ouvre avec un visualisateur (gimp par exemple), et si la ligne a changé, rafraichir gimp.

Est-ce possible?
Si oui, comment?

merci a tous...

Paulin
  • # sleep

    Posté par  . Évalué à 2.

    tu peux mettre

    sleep 3

    ça fera faire une pause de 3 secondes à ton script

    le tout dans une boucle, bien évidemment.
  • # Des pistes

    Posté par  . Évalué à 3.

    Bon, pour que tu apprennes, je te donne des pistes, pas la solution.

    Pour lire le début d'un fichier : head
    Pour faire une pause : sleep
    Pour avoir la documentation des commandes : man (ex : man sleep)
    Pour tester l'égalité de deux variables : if [ "$A" = "$B" ] (voir man bash)
    Pour faire une boucle infinie : while [ true ]; do quelquechose; done; (man bash également)

    Tout est là presque ! Bonne chance...
    • [^] # Re: Des pistes

      Posté par  . Évalué à 1.

      Merci Romain... J'ai casi réussi... mais je souhaiterais que au lieu de m'ouvrir mon image dans un autre gimp mon script me l'ouvre en remplacant la premiere imge ouverte...

      Est ce possible? avez vous des pistes?

      Merci...

      Paulin
      • [^] # Re: Des pistes

        Posté par  . Évalué à 1.

        Là ça va être compliqué. Il faudrait scripter gimp et je ne sais absolument pas comment faire.

        La solution simple, c'est de tuer gimp avant de le relancer... (killall gimp)
        • [^] # Re: Des pistes

          Posté par  . Évalué à 1.

          Merci Romain...

          J'avais aussi pensé à cette solution mais je voulais savoir si je pouvais le faire autrement... je vais essayer de me dépatouiller pour choper le numero du processus et le tuer...

          Encore merci...

          Paulin
          • [^] # Re: Des pistes

            Posté par  . Évalué à 1.

            pourquoi ne pas utiliser display à la place de gimp ?
            Si tout ce que tu veux c'est afficher l'image, ce devrait être amplement suffisant.

            Pour recup un numero de process, il existe pidof (paquet sysvinit-utils sous debian && man pidof) qui est très pratique et evite des grep/awk.
    • [^] # Re: Des pistes

      Posté par  . Évalué à 1.

      Merci Romain... J'ai casi réussi... mais je souhaiterais que au lieu de m'ouvrir mon image dans un autre gimp mon script me l'ouvre en remplacant la premiere imge ouverte...

      Est ce possible? avez vous des pistes?

      Merci...

      Paulin
    • [^] # Re: Des pistes

      Posté par  (site web personnel) . Évalué à 3.

      Une autre piste : pour exécuter une commande cycliquement il existe la commande watch.

      Par contre il n'y a pas d'arrêt automatique, à voir selon ce que tu souhaites obtenir...
  • # Autre piste

    Posté par  (site web personnel) . Évalué à 1.

    J'en profite pour signaler une autre piste sous linux 2.6 Ce noyau intègre un système pour être averti de changements sur fichier.

    Pour utiliser cette foncionnalité dans un script shell ,il te faut la commande inotifywait.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.