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 :

Awk et interprétation


Sujet :

Shell et commandes GNU

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 15
    Par défaut Awk et interprétation
    Bonjour,

    Est-ce que quelqu'un peux m'expliquer la raison de ce comportement :
    Je souhaite recuperer le contenu d'une commande awk dans une variable:

    Contenu de mon fichier 'test' a lire : (3 champs separes par un espace)
    Depuis la console,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    # awk -F' ' '{print $3}' /tmp/test
    *.log
    La commande renvoi bien le 3eme champ.

    Si j'affecte cette meme commande a une variable :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TOTO=`awk -F' ' '{print $3}' /tmp/test`
    echo $TOTO retourne MONFICH.log(NB : un fichier MONFICH.log existant est present dans mon repertoire courant. Si je me deplace dans un repertoire vide et que j'effectue la meme commande, il me renvoi bien : *.log)

    Visiblement la commande awk est "interpretée" (il recupere le premier fichier qui rempli la condition *.log) mais ce n'est pas ce que je veux. Je veux qu'il stocke dans ma variable : *.log

    Merci a vous

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 640
    Par défaut
    Bonjour,

    en fait, c'est le shell qui développe l'astérisque.
    pour éviter cela
    il faut toujours mettre les développements de variables entre guillemets. TOUJOURS!
    à moins de savoir pourquoi.
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 15
    Par défaut
    Oui je pense que c'est le shell qui execute la commande mais j'ai essaye plusieurs syntaxes en vain pour desactiver ce comportement.
    Si tu as un exemple ?

    Merci

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 640
    Par défaut

    Citation Envoyé par N_BaH Voir le message
    il faut toujours mettre les développements de variables entre guillemets. TOUJOURS!
    à moins de savoir pourquoi.
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 15
    Par défaut
    echo "$TOTO" renvoi bien *.log.

    Sujet clos.

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

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