Rediriger une commande

Résolu
jojo150393 -  
 jojo150393 -
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. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    hllo
    et avec
    read -e var < /dev/ttyS0; echo "$var" >>serie.log
    0
  2. jojo150393
     
    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!
    0
    1. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
       
      Salut,

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

      var=$(read -e var < /dev/ttyS0)
      0
    2. jojo150393
       
      ho le boulet ...Merci
      0
    3. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
       
      le var= est inutile, puisque read met le résultat dans var
      0
      1. jojo150393 > dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention  
         
        Erreur de copier/coller, j'avais pas mis le var:
        var=$(read -e < /dev/ttyS0)
        0