Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

script bash, linux

4 réponses
Avatar
fabriceS
Bonjour,

Je fais l'acquisition des données qui arrivent sur mon port COM (RS232)
avec la commande :

cat /dev/ttyS0 > fichier.txt

pour l'arrêter, je fais un contrôle C manuel.

Je voudrais maintenant faire une acquisition qui dure xx secondes, puis
exploiter le fichier de données dans la suite du script...

Merci pour vos lumières.
Fabrice

4 réponses

Avatar
Floris Dubreuil
Le 22/05/2011 15:04, fabriceS a écrit :
Bonjour,

Je fais l'acquisition des données qui arrivent sur mon port COM (RS232)
avec la commande :

cat /dev/ttyS0 > fichier.txt

pour l'arrêter, je fais un contrôle C manuel.

Je voudrais maintenant faire une acquisition qui dure xx secondes, puis
exploiter le fichier de données dans la suite du script...



Bonjour,

Là comme ça il est tard, mais concrètement dans un script bash:
1- lance la commande
2- compte les secondes avec sleep
3- fait un "ps aux" avec grep et awk pour récupérer le pid du process
4- tues le process
5- lance vi

Je ferais comme ça.
Tu peux pousser le truc en utilisant avec sleep une variable passée en
argument, genre "./mon_script.sh 20" qui fera un sleep de 20 secondes,
etc...

--
Floris Dubreuil
Avatar
Marc Duflot
Floris Dubreuil wrote:
Le 22/05/2011 15:04, fabriceS a écrit :
Bonjour,

Je fais l'acquisition des données qui arrivent sur mon port COM (RS232)
avec la commande :

cat /dev/ttyS0 > fichier.txt

pour l'arrêter, je fais un contrôle C manuel.

Je voudrais maintenant faire une acquisition qui dure xx secondes, puis
exploiter le fichier de données dans la suite du script...



Bonjour,

Là comme ça il est tard, mais concrètement dans un script bash:
1- lance la commande
2- compte les secondes avec sleep
3- fait un "ps aux" avec grep et awk pour récupérer le pid du process
4- tues le process



En bash, $! donne le PID du dernier job lancé en arrière-plan.

#!/bin/bash

cat /dev/ttyS0 > fichier.txt &
sleep 42
kill $!

# ...
Avatar
YBM
Marc Duflot a écrit :
En bash, $! donne le PID du dernier job lancé en arrière-plan.

#!/bin/bash

cat /dev/ttyS0 > fichier.txt &
sleep 42
kill $!



Un kill %1 fait tout aussi bien.
Avatar
Erwan David
YBM écrivait :

Marc Duflot a écrit :
En bash, $! donne le PID du dernier job lancé en arrière-plan.

#!/bin/bash

cat /dev/ttyS0 > fichier.txt &
sleep 42
kill $!



Un kill %1 fait tout aussi bien.



Dans ce cas simpliste oui. Pas si tu as d'autres jobs en arrière plan.

--
Le travail n'est pas une bonne chose. Si ça l'était,
les riches l'auraient accaparé