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 :

export de variables dynamiques


Sujet :

Shell et commandes GNU

Vue hybride

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

    Informations forums :
    Inscription : Septembre 2006
    Messages : 67
    Par défaut export de variables dynamiques
    Bonjour,
    Je voudrai écrire un script qui lit un fichier texte (sous le forme CLE=VALEUR) et transformer le contenu en des variables d'environnement.

    Fichier:
    -------
    CLE1=VAL1
    CLE2=VAL2


    script:
    ------
    while read ligne
    do

    echo CLE :`echo $ligne | awk -F= '{print $1}' `
    echo VAL :`echo $ligne | awk -F= '{print $2}' `

    #export $CLE=$VAL
    #export ${CLE}=${VAL}
    #export '${CLE}'='${VAL}'
    #export `echo $CLE`=`echo $VAL`
    export "`echo $CLE`"="`echo $VAL`"

    done <Fichier



    J'ai essayé export $CLE=$VAL
    ou alors export "`echo $CLE`"="`echo $VAL`"
    mais ca ne marche pas !!!

    quelqu'un peut me dire quelle est la bonne expression à utiliser ?
    d'avance Merci

    ps, shell = KSH. OS = SunOS 5.10 Sun-Solaris.

  2. #2
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2008
    Messages
    1 515
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 515
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    #!/bin/sh
     
    while read line
    do
            eval export $line
    done < filename

  3. #3
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2008
    Messages
    1 515
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 515
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    #!/bin/sh
     
    while read line
    do
            eval export $line
    done < filename
    Edit : Juste pour être sûr... Ces variables "CLEE", tu veux les utiliser dans le script qui lit le fichier de définition, pas en dehors ?

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 67
    Par défaut
    Merci infiniment
    Oui je veux les utiliser dans le fichier appelant.

    l'erreur que j'avais provient du fait que j'utilise des noms de variables incorrectes

    CLE=PROCESS.DB.INSTANCE.LOGIN
    VAL=XXXXXXXX

    il fallait que je remplace les "." par des "_" =>
    CLE=PROCESS_DB_INSTANCE_LOGIN

    si non le shell ne les interprète pas correctement

  5. #5
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2008
    Messages
    1 515
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 515
    Par défaut
    Le fait d'avoir des points dans les valeurs ne devrait rien changer. D'ailleurs chez moi ça marche bien même avec PROCESS.DB.INSTANCE.LOGIN

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 67
    Par défaut
    Merci encore

    Le fait de changer les "." en "_" génère l'erreur suivante :
    PROCESS.DB.INSTANCE.LOGIN =XXXXXXXX: is not an identifier

    aussi je bloque quand à la récupération des variables exportés en dynamique !

    c'est possible de mettre en ligne un exemple d'export et de récupération des données ?

    vraiment merci beaucoup

Discussions similaires

  1. Réponses: 3
    Dernier message: 23/02/2005, 14h34
  2. Variables dynamiques
    Par CriPpLe dans le forum C++
    Réponses: 5
    Dernier message: 23/02/2005, 11h56
  3. [SQL SERVER 2000] Noms de variables dynamiques
    Par cassoulet dans le forum MS SQL Server
    Réponses: 9
    Dernier message: 08/09/2004, 11h44
  4. Récupération de variables dynamiques complexes
    Par ludoboy dans le forum ASP
    Réponses: 7
    Dernier message: 24/05/2004, 17h51
  5. [LG]Problême Variable dynamique de types différents
    Par pierrOPSG dans le forum Langage
    Réponses: 2
    Dernier message: 29/04/2004, 16h01

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