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 :

Probleme variable d'environnement


Sujet :

Shell et commandes GNU

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    182
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 182
    Points : 73
    Points
    73
    Par défaut Probleme variable d'environnement
    Bonjour,

    Je voulais savoir une petite chose.
    J'ai des variables d'environnements qui sont exportées dans mon .bashrc et d'autres que j'exporte également par un export dans un shell.
    En faisant env voilà ce que j'ai :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    BNTT_FOREGROUND=BLACK
    BNTT_BACKGROUND=#CDC198
    ....
    LOGNAME=cc_hbe
    CVS_RSH=ssh
    SSH_CONNECTION=192.5.1.3 57555 192.5.1.199 22
    LESSOPEN=|/usr/bin/lesspipe.sh %s
    DISPLAY=10.24.68.19:0.0
    ORACLE_HOME=/usr/app/oracle/product/10.2.0
    G_BROKEN_FILENAMES=1
    Je fais en c++ un getenv("LOGNAME") et je récupère le contenu de la variable et pour getenv("BNTT_FOREGROUND") je n'y arrive pas.

    Le mystère est insoluble pour le moment j'espère qu'avec votre aide il ne le sera plus très longtemps. Merci d'avance

  2. #2
    Membre averti Avatar de exodev
    Inscrit en
    Septembre 2009
    Messages
    201
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Septembre 2009
    Messages : 201
    Points : 359
    Points
    359
    Par défaut
    Le fichier .bashrc n'est chargé qu'à l'éxécution de bash (ouverture d'un terminal par exemple), ce qui explique pourquoi tu ne peux pas récupérer les variables d'environnement définies dans ce fichier.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    182
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 182
    Points : 73
    Points
    73
    Par défaut
    Au contraire ce que j'explique c'est que les variables définies dans mon bashrc sont accessible mais que les variables que j'exporte comme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    export BNTT_BACKGROUND=#121212
    ne sont pas récupérables par le getenv() dans mon fichier cpp. De plus, je lance mon shell parfois les variables sont exportés parfois elle ne le sont pas. Après un petit moment ces variables n'existe plus dans mon environnement. Je n'y comprends rien

  4. #4
    Membre averti Avatar de exodev
    Inscrit en
    Septembre 2009
    Messages
    201
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Septembre 2009
    Messages : 201
    Points : 359
    Points
    359
    Par défaut
    bon effectivement j'ai dis une grosse bêtise, si lancé dans un terminal il récupère bien les variables du shell

    sinon il me semble que la différence entre un EXPORT et une assignation basique est que la variable est également porté dans les environnements fistons

    p.s. : un petit exemple shell

    Code test.sh : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    #!/bin/bash
    export A1="Hello";
    A2="world!";
     
    /path/to/test2.sh

    Code test2.sh : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    #!/bin/bash
    echo "$A1 $A2";

    Code Resultat : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ./test.sh 
    Hello

  5. #5
    Membre éprouvé Avatar de orfix
    Homme Profil pro
    Inscrit en
    Avril 2007
    Messages
    707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2007
    Messages : 707
    Points : 1 132
    Points
    1 132
    Par défaut
    Ton programme doit être lancé depuis le même shell où tu as lancé ta commande export. (le même environnement)

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    182
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 182
    Points : 73
    Points
    73
    Par défaut
    Alors je développe c'est dans le shell que sont fait les export.

    Ce shell est appellé par un programme et ce même programme récupère un peu plus tard le contenu de ces variables d'environnement. Le soucis c'est que lorsque je lance le programme qui lance le shell je n'arrive pas a voir les variables d'environnement en faisant env.

    Parfois ca passe parfois ca passe pas c'est plutot bizarre.

  7. #7
    Membre éclairé Avatar de jmelyn
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2007
    Messages
    703
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Septembre 2007
    Messages : 703
    Points : 823
    Points
    823
    Par défaut
    Bonsoir,

    La commande export permet de rendre une variable visible dans les process-enfants. Bien sûr, si c'est le premier shell du login, toutes les applications auront accès aux variables exportées. Mais dans un shell quelconque, il faut à la fois exporter puis lancer le programme qui va lire la variable exportée.

Discussions similaires

  1. probleme avec variable d'environnement pour python
    Par k_boy dans le forum Général Python
    Réponses: 4
    Dernier message: 24/07/2011, 01h41
  2. Probleme avec la configuration des variables d'environnement
    Par top_eagle dans le forum Scripts/Batch
    Réponses: 1
    Dernier message: 26/01/2009, 15h14
  3. Probleme avec les variables d'environnement
    Par top_eagle dans le forum Windows XP
    Réponses: 1
    Dernier message: 26/01/2009, 15h13
  4. Probleme avec les variables d'environnement
    Par top_eagle dans le forum Administration système
    Réponses: 3
    Dernier message: 26/01/2009, 15h10
  5. Problemes de variables d'environnements ?
    Par radium dans le forum Linux
    Réponses: 5
    Dernier message: 12/07/2005, 16h02

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