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
A voir également:

2 réponses

dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
hllo
et avec
read -e var < /dev/ttyS0; echo "$var" >>serie.log
0
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
zipe31 Messages postés 36402 Date d'inscription   Statut Contributeur Dernière intervention   6 431
 
Salut,

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

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