Rediriger une commande

Résolu
Bonjour,
j'essaye de lire sur le port série et d'afficher ce qui est envoyé. Malheuresement il ya des espaces et saut de ligne a enlever mais il y a toujours le mort "Port" qui est envoyé. J'ai donc essayé ceci:
cat < /dev/ttyS0 | grep "Port" >> serie.log

mais rien n'est envoyé dans le fichier.

En fait, dans mon script, j'ai une boucle ou je viens tester pleins d'entrée sorties. En tache de fond, j'ai un script qui vient écrire sur le port série ttyS1 toute les 5s. A chaque boucle, j'aimerais pouvoir lire le contenu de ttyS0 et l'envoyé dans un fichier de log, puis passer à la suite.

Une solution ?

ps:
la solution qui marche presque est celle-ci:
read -e < /dev/ttyS0

Mais impossible de rediriger dans un fichier:
read -e < /dev/ttyS0 >> serie.log <=== ne marche pas

Merci d'avance

2 réponses

  1. Contributeur
    hllo
    et avec
    read -e var < /dev/ttyS0; echo "$var" >>serie.log
    1. Oui effectivement ça marche bien !

      j'avais essayé avec une variable en faisant :
      var = $(read -e var < /dev/ttyS0);
      echo $var >> serie.log

      Mais ça marchait pas je sais pas pourquoi.
      Merci beaucoup en tout cas!
      1. Contributeur
        Salut,

        Tout simplement parce qu'il ne faut pas d'espace autour du signe égale ;-\

        var=$(read -e var < /dev/ttyS0)
      2. ho le boulet ...Merci
      3. Contributeur
        le var= est inutile, puisque read met le résultat dans var
      4. @dubcekErreur de copier/coller, j'avais pas mis le var:
        var=$(read -e < /dev/ttyS0)