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 :

Commande en shell inclusion d'un fichier de variables


Sujet :

Linux

  1. #1
    Membre habitué Avatar de Maillon
    Inscrit en
    Juin 2007
    Messages
    136
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Juin 2007
    Messages : 136
    Points : 136
    Points
    136
    Par défaut Commande en shell inclusion d'un fichier de variables
    Bonjour,

    Voilà j'aimerai dans mon script shell appeler le contenu d'un fichier de conf de base.

    Par exemple :
    dans mon script dev.sh j'appelle le contenu du fichier base.conf et j'utilise ensuite les variables défini dans base.conf dans dev.sh.

    J'espère avoir été clair.

    J'ai vu dans un autre poste qu'on pouvait utiliser un point "." donc j'ai essayer de l'adapter pour le mettre dans mon script et ça donne ça mais ça marche pas.

    Merci beaucoup de votre aide en tout cas.

    Cordialement,
    Aide ton prochain car à sa place tu aimerai bien qu'on t'aide.
    _
    Previously On My Life ...
    _
    Administrateur Réseaux et Systèmes.
    _

  2. #2
    Membre éclairé Avatar de BlaireauOne
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    492
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2007
    Messages : 492
    Points : 652
    Points
    652
    Par défaut
    dans mon script dev.sh j'appelle le contenu du fichier base.conf
    Ton script dev.sh doit exécuter base.conf sans créer de processus fils.
    Pour cela, tu dois écrire la commande suivante dans le script dev.sh :

    . base.conf
    Loi de Murphy:
    La Théorie c'est quand ça ne marche pas mais que l'on sait pourquoi.
    La Pratique c'est quand ça marche mais qu'on ne sait pas pourquoi.
    Quand la théorie rejoint la pratique ça ne marche pas et on ne sait pas pourquoi.

  3. #3
    Membre habitué Avatar de Maillon
    Inscrit en
    Juin 2007
    Messages
    136
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Juin 2007
    Messages : 136
    Points : 136
    Points
    136
    Par défaut
    Voici mon fichier dev.sh aujourd'hui :

    #!/bin/sh

    cd /home/user

    . base.conf

    echo $VAR

    Et dans mon fichier base.conf il y a ça :
    #!/bin/sh

    VAR="hello"

    Et donc le ". base.conf" n'est pas pris en compte. En fait dans le base.conf il y a normalement plusieurs variables qu'il faut que j'utilise dans le dev.sh et dans d'autre script.

    Merci de votre aide.

    Cordialement,
    Aide ton prochain car à sa place tu aimerai bien qu'on t'aide.
    _
    Previously On My Life ...
    _
    Administrateur Réseaux et Systèmes.
    _

  4. #4
    Membre habitué Avatar de Maillon
    Inscrit en
    Juin 2007
    Messages
    136
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Juin 2007
    Messages : 136
    Points : 136
    Points
    136
    Par défaut
    En fait je viens de réussir.

    Il fallait déjà exporter la variable contenu dans le base.conf
    VAR="hello" ; export VAR

    et ensuite appeler le base.conf dans dev.sh avec la commande suivante :
    . ./base.conf

    Merci ;-)
    Aide ton prochain car à sa place tu aimerai bien qu'on t'aide.
    _
    Previously On My Life ...
    _
    Administrateur Réseaux et Systèmes.
    _

  5. #5
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 690
    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 690
    Points : 30 984
    Points
    30 984
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Maillon Voir le message
    En fait je viens de réussir.

    Il fallait déjà exporter la variable contenu dans le base.conf
    VAR="hello" ; export VAR
    Absolument pas. Le export sert quand tu as besoin de faire connaitre une variable aux fils du processus courant. La commande "." (ou la commande "source" qui en est un synonyme) ne créant pas de fils, la variable "VAR" est déjà connue donc le export est inutile
    En fait, quand tu fais ". ./base.conf", le contenu complet de "./base.conf" vient remplacer la ligne et s'intègre dans le shell courant.T'as donc pas besoin d'exporter VAR car tu ne changes pas de shell. La preuve, tape ce code suivant et exécute-le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    #!/bin/sh
    limite=${1:-100}
    cpt=${cpt:-0}
     
    cpt=`expr $cpt + 1`
    echo "cpt=$cpt"
     
    test $cpt -lt $limite && . $0
    Il fonctionne or il n'y a aucun export !!!

    Citation Envoyé par Maillon Voir le message
    Voici mon fichier dev.sh aujourd'hui :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    #!/bin/sh
     
    cd /home/user
     
    . base.conf
     
    echo $VAR
    Et dans mon fichier base.conf il y a ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    #!/bin/sh
     
    VAR="hello"
    Et donc le ". base.conf" n'est pas pris en compte.
    Oui mais comme dans ton script tu commences par changer de répertoire, peut-être que là le fichier "base.conf" n'est pas trouvé car théoriquement ton code devrait fonctionner...
    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]

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

Discussions similaires

  1. Inclusion d'un fichier properties dans un jar avec la commande jar
    Par Lolitaaa dans le forum Général Java
    Réponses: 3
    Dernier message: 15/12/2009, 14h17
  2. Réponses: 3
    Dernier message: 18/08/2009, 18h22
  3. Réponses: 9
    Dernier message: 28/08/2008, 17h17
  4. trier un fichier particulier command sort shell
    Par Mistervanhalen dans le forum Shell et commandes GNU
    Réponses: 9
    Dernier message: 22/06/2008, 18h56
  5. Commande en shell -- Sur les fichiers
    Par OrangeBud dans le forum Linux
    Réponses: 8
    Dernier message: 18/05/2004, 13h13

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