#1 Le 11/12/2018, à 09:28
- cosmoff
probleme avec la redirection de la sortie standard
Bonjour à tous,
voila j'utilise la commande :
xinput --test 9 | grep "button press"
qui permet d'afficher sur la sortie standart de mon terminal
button press 1
button press 1
...
J'aimerai mettre la sortie dnas un fichier texte. Je tape donc sur mon termminal la commande suivante:
sudo xinput --test 9 | grep "button press" >>/tmp/coco
mais quand j'arrete la commande (ctrl + C) et lis mon fichier coco, rien n'est écris dedans.
Avez vous une idée pourquoi?
Merci d'avance pour votre aide
Hors ligne
#2 Le 11/12/2018, à 09:39
- Nasman
Re : probleme avec la redirection de la sortie standard
Et si tu enregistres dans un fichier de ta session ? (sans le sudo)
PC fixe sous Bionic 64 bits et portable avec Focal 64 bits
Hors ligne
#3 Le 11/12/2018, à 09:40
- diesel
Re : probleme avec la redirection de la sortie standard
Tu peux essayer sans le pipe "grep" pour voir si ça fonctionne ?
Amicalement.
Jean-Marie
Je déteste qu'on cherche à me faire passer pour un con, j'y arrive déjà très bien tout seul.
Le mort, il sait pas qu'il est mort ; c'est pour les autres que c'est dur.................... Pour les cons, c'est pareil.
Hors ligne
#4 Le 11/12/2018, à 10:16
- cosmoff
Re : probleme avec la redirection de la sortie standard
sans le sudo ca ne marche toujours pas.
en retirant le " | grep "button press" " ca marche.
Avez vous une idée du pourquoi et s'il y a une facon de laisser le | grep "button press" et que ca marche
Hors ligne
#5 Le 11/12/2018, à 11:11
- moko138
Re : probleme avec la redirection de la sortie standard
Chez moi, xinput --test 9 | grep "button press" n'affiche rien.
- -
Il n'y a pas besoin de sudo pour écrire dans /tmp qui est en 777. Ainsi :
moko@pc:~$
echo test >> /tmp/123
moko@pc:~$
moko@pc:~$ cat /tmp/123
test
moko@pc:~$
- -
Avez vous une idée du pourquoi et s'il y a une facon de laisser le | grep "button press" et que ca marche
a) Pourquoi
Peut-être que /tmp/echo appartient à root et est en 700 ? Montre
ls -l /tmp/echo
- -
b) Comment
Si, chez toi, xinput --test 9 | grep "button press" affiche quelque chose,
alors on peut utiliser un fichier intermédiaire :
xinput --test 9 >>/tmp/123 # Ne pas réutiliser /tmp/coco.
grep "button press" /tmp/123 >> /tmp/456 # Ne pas réutiliser /tmp/coco.
Dernière modification par bruno (Le 11/12/2018, à 14:04)
%NOINDEX%
Un utilitaire précieux : ncdu
Photo, mini-tutoriel : À la découverte de dcraw
Hors ligne
#6 Le 11/12/2018, à 11:49
- diesel
Re : probleme avec la redirection de la sortie standard
Chez moi,
xinput -- test 9
m'affiche les codes des touches du clavier. Donc, rien à voir avec des boutons.
Il est donc normal qu'un
xinput --test 9 | grep "button press"
n'affiche rien. Et rien à voir avec la redirection.
Amicalement.
Jean-Marie
Je déteste qu'on cherche à me faire passer pour un con, j'y arrive déjà très bien tout seul.
Le mort, il sait pas qu'il est mort ; c'est pour les autres que c'est dur.................... Pour les cons, c'est pareil.
Hors ligne
#7 Le 11/12/2018, à 12:57
- nany
Re : probleme avec la redirection de la sortie standard
Bonjour,
Chez moi, xinput --test 9 | grep "button press" n'affiche rien.
Chez moi,
xinput -- test 9
m'affiche les codes des touches du clavier.
Faut adapter la commande pour faire vos tests.
man xinput
xinput --list
Chez moi c’est xinput --test 10 pour avoir la souris et la redirection après le pipe ne fonctionne pas non plus.
Dernière modification par nany (Le 11/12/2018, à 12:57)
Hors ligne
#8 Le 11/12/2018, à 13:48
- cosmoff
Re : probleme avec la redirection de la sortie standard
oui la commande xinput -- test 9 marche pour chez moi. Regarder l'id qui correspond à votre souris avec xinput --list
je ne peux pas le faire en 2 commandes. Je dois faire a tout pris un pipe avec xinput --test 9 | grep "button press" >> /tmp/coco
c'est bizarre que ca ne marche pas quand meme alors que la commande xinput --test 9 | grep "button press" affiche des string dans la sortie standart. il doit y avoir avec une subtilité que je ne connais pas.
J'ai bien sur tous les droits sur /tmp/coco
Dernière modification par cosmoff (Le 11/12/2018, à 13:49)
Hors ligne
#9 Le 11/12/2018, à 14:28
- moko138
Re : probleme avec la redirection de la sortie standard
Merci nany !
= =
je ne peux pas le faire en 2 commandes. Je dois faire a tout pris un pipe
(...)
il doit y avoir avec une subtilité que je ne connais pas.
Je crois que la subtilité est là :
man xinput
--test [-proximity] device
Register all extended events from device and enter an endless loop displaying events received.
Donc quand tu lances ta redirection :
sudo xinput --test 9 | grep "button press" >>/tmp/coco
la boucle est amorcée depuis une fraction de seconde : c'est beaucoup trop tôt.
Chez moi,
echo $(cat /etc/fstab | tail -3 | head -1 ; sleep 1) >> /tmp/456
marche.
Donc, en supposant que tu as besoin de trente secondes pour tester tes boutons, j'essayerais, sans certitude, un :
echo $(grep "button press" $(sudo xinput --test 9) ; sleep 30) >> /tmp/456
%NOINDEX%
Un utilitaire précieux : ncdu
Photo, mini-tutoriel : À la découverte de dcraw
Hors ligne
#10 Le 11/12/2018, à 17:12
- moko138
Re : probleme avec la redirection de la sortie standard
Chez moi, xinput --test 8 produit :
motion a[0]=1071 a[1]=808
(...)
button release 3
(...)
motion
Et xinput --test 8 | grep -v motion produit :
button press 1
button release 1
mais dès que j'essaie d'aller plus loin, j'échoue.
%NOINDEX%
Un utilitaire précieux : ncdu
Photo, mini-tutoriel : À la découverte de dcraw
Hors ligne
#11 Le 11/12/2018, à 17:21
- maxire
Re : probleme avec la redirection de la sortie standard
Salut,
L'arrêt par ctrl+c est trop violent, par contre si tu lances la commande en arrière-plan la redirection fonctionne :
xinput --test 9 | grep "button press" >>/tmp/coco &
Pour arrêter le tout :
pkill xinput
Exemple :
bionic@asus-arch:~$ rm toto.txt
bionic@asus-arch:~$ xinput --test 12 | grep "key press" > toto.txt &
[1] 8489
bionic@asus-arch:~$ s
bash: s : commande introuvable
[1]+ Fini xinput --test 12 | grep --color=auto "key press" > toto.txt
bionic@asus-arch:~$ cat toto.txt
key press 39
key press 37
key press 64
key press 28
key press 33
key press 45
key press 31
key press 33
key press 30
key press 28
key press 36
bionic@asus-arch:~$
La commande pkill a étét passée à partir d'un autre terminal.
Maxire
Archlinux/Mate + Ubuntu 22.04 + Archlinux/Gnome sur poste de travail
Hors ligne
#12 Le 11/12/2018, à 17:45
- moko138
Re : probleme avec la redirection de la sortie standard
Bravo maxire !
%NOINDEX%
Un utilitaire précieux : ncdu
Photo, mini-tutoriel : À la découverte de dcraw
Hors ligne
#13 Le 12/12/2018, à 08:33
- cosmoff
Re : probleme avec la redirection de la sortie standard
ok parfait merci beaucoup, mais pourquoi ca marche uniquement en arriere plan ?
Hors ligne
#14 Le 12/12/2018, à 12:11
- maxire
Re : probleme avec la redirection de la sortie standard
Je ne sais pas, j'ai eu l'idée de lancer le processus en arrière-plan juste pour voir !
J'imagine que la commande pkill ferme correctement le processus alors que la séquence ctrl+c en termninal est plus brutale.
Maxire
Archlinux/Mate + Ubuntu 22.04 + Archlinux/Gnome sur poste de travail
Hors ligne