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 : protection d'une var issue d'un script sh


Sujet :

Shell et commandes GNU

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

    Informations forums :
    Inscription : Février 2008
    Messages : 21
    Par défaut awk : protection d'une var issue d'un script sh
    Bonjour tout le monde,
    Une petite question pas chere : pourquoi ce truc ne marche pas ? Je n'arrive pas a extraire ma variable dans la ligne awk...

    $TOTO="'{print \$2}'"
    ps -ef | grep " $PROC " | awk $TOTO

    Que je fasse un awk `echo $TOTO` ou un awk ${TOTO} : toujours meme punition...

    Une idée ?

  2. #2
    Expert confirmé Avatar de frp31
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    5 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2006
    Messages : 5 196
    Par défaut
    normal le quotting des commandes awk n'est pas bon ou suffisant.

    d'autre part c'est une mauvaise methode mais ca c'est rien....

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

    Informations forums :
    Inscription : Février 2008
    Messages : 21
    Par défaut
    Citation Envoyé par frp31 Voir le message
    normal le quotting des commandes awk n'est pas bon ou suffisant.

    d'autre part c'est une mauvaise methode mais ca c'est rien....
    Pourquoi la methode est-elle mauvaise ?
    Dans ce script je dois, selon le resultat d'un uname -sr, afficher x ou y colonne.
    Les variables sont initiees sur un switch case et appellées ensuite dans le awk selon la colonne desirée. Je n'ai pas d'autre idée à part mettre 50 switch case dans le script (ce que je trouve vraiment moyen).

  4. #4
    Expert confirmé Avatar de frp31
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    5 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2006
    Messages : 5 196
    Par défaut
    soit tu fait un awk soit tu fais un shell mais pas les deux ....


  5. #5
    Membre éclairé

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Août 2007
    Messages
    509
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Août 2007
    Messages : 509
    Par défaut
    Citation Envoyé par Fung999 Voir le message
    $TOTO="'{print \$2}'"
    ps -ef | grep " $PROC " | awk $TOTO

    Que je fasse un awk `echo $TOTO` ou un awk ${TOTO} : toujours meme punition...
    Le problème se situe au niveau du caractère $ dans $TOTO. Un programme awk est encapsulé le plus souvent entre simples quotes donc le $ risque de ne pas etre interprété. Pour que ca marche, il faut faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    TOTO="{print \$2}" 
    ps -ef | grep " $PROC " | awk '  ' "$TOTO" '  '
    Sans oublier evidemment les simples quotes ' ' du awk.
    Le " ", c'est pour protéger les espaces.
    Je t'explique :
    dans " $TOTO", le caractère $ sera interprété donc il sera remplacé par sa valeur et on le met entre quote ' ' pour protéger le résultat.

    J'espère que je t'ai bien aidé ou sinon visite ce site pour plus d'explications :

    http://www.faqs.org/faqs/unix-faq/fa...ection-12.html

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 21
    Par défaut
    Citation Envoyé par publicStaticVoidMain Voir le message
    J'espère que je t'ai bien aidé ou sinon visite ce site pour plus d'explications :
    http://www.faqs.org/faqs/unix-faq/fa...ection-12.html
    Super merci pour le lien et l'explication tres claire : tout compris )

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

Discussions similaires

  1. setTimeOut ne peu pas appeler une fonct. et appeler une var?
    Par bywazy dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 15/06/2005, 09h56
  2. Affectation d'un champs blob dans une var de type TStrings
    Par Andry dans le forum Bases de données
    Réponses: 1
    Dernier message: 16/03/2005, 18h26
  3. Protection d'une base de donnée
    Par portu dans le forum Windows
    Réponses: 4
    Dernier message: 30/08/2004, 15h03
  4. [FLASH 5] Passer une var ou un paramètre
    Par Harry dans le forum Flash
    Réponses: 8
    Dernier message: 18/03/2004, 17h46
  5. [VBA-E] [Excel] Protection d'une plage de cellules
    Par fikou dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 20/11/2002, 11h28

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