IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes GNU Discussion :

printf dans sh


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 17
    Par défaut printf dans sh
    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 ?

  2. #2
    Membre éprouvé Avatar de eric-m
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Mars 2011
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2011
    Messages : 62
    Par défaut
    Je pense que le shell de ton terminal n'est pas un le même shell que celui que tu lances dans ton script.

    Citation Envoyé par man printf
    NOTE: your shell may have its own version of printf, which usually supersedes the version described here. Please refer to your shell's documentation for details about the options it supports.
    Deux solutions
    • 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)

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 17
    Par défaut
    J'utilise bien bash et je mets le chemin complet de printf

    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 pourquoi ça marche pas ?

  4. #4
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 651
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 651
    Par défaut
    ça marche pas
    c'est très utile comme description

    pourquoi des apostrophes entre guillemets ?
    BASH à son propre printf, qui fonctionne très bien.
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 17
    Par défaut
    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.

  6. #6
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 651
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 651
    Par défaut
    et si tu copies les commandes du script dans un terminal, ligne par ligne...
    que se passe-t-il ?
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. bash: printf dans variable bash
    Par Invité dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 22/10/2011, 03h44
  2. Réponses: 1
    Dernier message: 14/03/2011, 23h23
  3. Redirection de printf dans une QTextEdit
    Par mackmack dans le forum Débuter
    Réponses: 2
    Dernier message: 20/12/2010, 10h29
  4. affichage de printf dans un script bash
    Par kass28 dans le forum Shell et commandes GNU
    Réponses: 3
    Dernier message: 19/03/2008, 21h36
  5. Probleme pour afficher des printf dans le main
    Par Battosaiii dans le forum C
    Réponses: 4
    Dernier message: 13/03/2006, 10h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo