bonjour, dans un terminal lorsque je tape printf '\x04\x14\x01\x00\x00\xe7\x0f' >>/dev/ttyACM0, ça marche la carte reliée opère
Lorsque je mets ça dans un script sh ça marche pas.
Pourquoi ?
bonjour, dans un terminal lorsque je tape printf '\x04\x14\x01\x00\x00\xe7\x0f' >>/dev/ttyACM0, ça marche la carte reliée opère
Lorsque je mets ça dans un script sh ça marche pas.
Pourquoi ?
Je pense que le shell de ton terminal n'est pas un le même shell que celui que tu lances dans ton script.
Deux solutionsEnvoyé par man printf
- tu changes le shell utilisé dans ton script (pour le bash par exemple), si cela n'entraine pas trop de modification.
- tu utilises le chemin absolu de la commande printf (/usr/bin/printf normalement)
J'utilise bien bash et je mets le chemin complet de printf
Alors pourquoi ça marche pas ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 #!/bin/bash F="'\x04\x14\x01\x00\x00\xe7\x0f'" echo $F fi="/dev/ttyACM0" /usr/bin/printf $F >> $fi
alors,
j'ai une carte avec des relais reliée par usb. Ma debian la reconnait comme /dev/ttyACM0
dans un terminal lorsque je tape
printf '\x04\x14\x01\x00\x00\xe7\x0f' >>/dev/ttyACM0
le relais 1 se ferme
je voulais un peu scripter tout ça.
donc je lance mon script et rien pas de message d'erreur et pas non plus mon relais qui se ferme.
du coup j'ai fais un echo de la commande envoyée, copier collée dans un terminal et là le relais se ferme.
Partager