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

Vue hybride

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

    Informations forums :
    Inscription : Octobre 2006
    Messages : 21
    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
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 832
    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 832
    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.
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

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