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

Linux Discussion :

AWK et variables


Sujet :

Linux

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 21
    Points : 20
    Points
    20
    Par défaut AWK et variables
    Bonjour,

    Je suis débutant avec le Shell scripting. J'ai un problème avec la commande ci dessous:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    problem=0
     
    awk '{ if ($2 > 5) problem=1}' tmp_cpu_idle.dat
     
    echo "Problem: ${problem}"

    La variable problem se réinitialise en sortant du awk. Y a-t-il moyen de faire en sorte de changer la valeur de "problem" et de l'utiliser par la suite?

    MERCI

  2. #2
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 730
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 730
    Points : 31 053
    Points
    31 053
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Nayas Voir le message
    Bonjour,

    Je suis débutant avec le Shell scripting. J'ai un problème avec la commande ci dessous:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    problem=0
     
    awk '{ if ($2 > 5) problem=1}' tmp_cpu_idle.dat
     
    echo "Problem: ${problem}"

    La variable problem se réinitialise en sortant du awk. Y a-t-il moyen de faire en sorte de changer la valeur de "problem" et de l'utiliser par la suite?

    MERCI
    Il est impossible à une variable initialisée dans un processus fils de remonter sa valeur dans l'appelant. La hiérarchie entre processus est très cloisonnée. Toutes la mémoire créée dans un fils est détruite à la mort du fils.

    Cependant il est possible de contourner un peu ça
    Il te suffit de faire un programme (awk ou autre) qui affiche simplement la valeur que tu veux renvoyer, style
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    awk '{..... print valeur}'
    Et tu récupères cet affichage via backquotes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    problem=`awk '{..... print valeur}'`
    Mais ça ne marche que si ton programme awk ne fait qu'un seul et unique affichage.

Discussions similaires

  1. [awk] Utilisation de variables externes
    Par soulhouf dans le forum Shell et commandes GNU
    Réponses: 18
    Dernier message: 10/06/2013, 13h41
  2. awk et variable de shell
    Par Melvine dans le forum Shell et commandes POSIX
    Réponses: 1
    Dernier message: 24/09/2012, 10h59
  3. Aide awk avec variable
    Par TinyJimbo dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 16/09/2010, 20h45
  4. Passer variable de 'awk' à l'extérieur ??
    Par dongnold dans le forum Linux
    Réponses: 2
    Dernier message: 11/05/2006, 12h52
  5. Awk et variables
    Par Fabien Celaia dans le forum Linux
    Réponses: 2
    Dernier message: 15/06/2004, 11h31

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