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 :

Script Batch : Variable d'environnement dans un fichier "ordinaire"


Sujet :

Shell et commandes GNU

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 109
    Points : 68
    Points
    68
    Par défaut Script Batch : Variable d'environnement dans un fichier "ordinaire"
    Bonjour,

    Voilà mon problème:

    J'ai un utilitaire Batch qui utilise un fichier de configuration listant les répertoires qu'il doit vérifier. J'aimerai utiliser des variables d'environnement dans ce fichier de configuration pour pointer sur ces répertoires.
    Il faut donc que mon utilitaire parse le fichier et remplace les variables par leur vraie valeur puisque ce n'est pas interprété directement...

    Voyez vous un moyen simple de faire cela?

    Merci par avance,

  2. #2
    Membre à l'essai
    Inscrit en
    Avril 2008
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 13
    Points : 16
    Points
    16
    Par défaut
    Bonjour falcon,

    Le fichier le configuration se presente sous quelle forme ( un fichier ini type windows ?? )
    Aurais tu un exemple ??

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 109
    Points : 68
    Points
    68
    Par défaut
    Salut Tuxcoin,

    Merci pour ta réponse.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Exemple de fichier de config :
     
    [rep]
    $HOME/repertoire1
    $HOME/repertoire2
    $TMP/repertoire3

  4. #4
    Expert éminent sénior Avatar de frp31
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    5 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2006
    Messages : 5 196
    Points : 12 264
    Points
    12 264
    Par défaut
    lire le fichier ligne à ligne sauf celle commençant par [
    pour chaque ligne generer var en substitant \$HOME par ${HOME}

    si j'ai bien compris ta demande ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    XS2:root # cat > /tmp/toto
    [rep]
    $HOME/repertoire1
    $HOME/repertoire2
    $TMP/repertoire3
    ^D
    XS2:root # for i in $(cat /tmp/toto| grep -v '^\[') ; do
    var=$( echo $i | sed "s/\$.*\//\/"$TOTO"\//")
    echo $var
    done
    /tutu/repertoire1
    /tutu/repertoire2
    /tutu/repertoire3
    XS2:root #
    il te reste plus qu'a trouver la ligne
    TOTO=...........
    à inserer dans la boucle for avant la ligne var=........

  5. #5
    Membre à l'essai
    Inscrit en
    Avril 2008
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 13
    Points : 16
    Points
    16
    Par défaut
    Salut falcon,

    Voila comment je fais ( un exemple parmis tant d'autre ) pour les applis qui utilisent un fichier ( type ini ) pour mes shell ..

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
     
    #!/bin/bash
    # set -x
    Section=$1
    Ficparam=$2
    FileEnv=/tmp/monfichierenv
     
    [ $# -ne 2 ] && exit 2
    [ -e $FileEnv ] && \rm -f $FileEnv
     
    /usr/bin/awk -v ficname=$Section  <  $Ficparam '{
    if ($0~/^\[/)  {
            a = substr($0, 2, index($0, "]")-2)
            if (a == ficname) {
                    valable=1
                    }
            else
                    valable=0
            }
    else if (valable)
            print $0
    }' > $FileEnv
     
     
    # unset $Section
    # unset $Ficparam
    . /tmp/$FileEnv
    Comme cela ton script reste modulaire, tu lui passes le fichier ini et la section qui te concerne
    Et le tour est joué
    Ca te permet de découper le fichier ini correctement .

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 109
    Points : 68
    Points
    68
    Par défaut
    Ok merci à tous les deux, je devrais pouvoir m'en tirer ainsi!

  7. #7
    Expert éminent sénior Avatar de frp31
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    5 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2006
    Messages : 5 196
    Points : 12 264
    Points
    12 264
    Par défaut
    la solution awk est très bonne aussi

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 18/12/2008, 07h29
  2. Variable d'environnement dans fichier desktop
    Par _Eric_ dans le forum Applications et environnements graphiques
    Réponses: 2
    Dernier message: 06/08/2008, 13h49
  3. [WIN2003]définir une variable d'environnement dans un batch
    Par creezeer dans le forum Windows Serveur
    Réponses: 1
    Dernier message: 28/08/2007, 11h25
  4. variable d'environnement dans le fichier manifest.mf
    Par unmecenor dans le forum Langage
    Réponses: 2
    Dernier message: 07/09/2006, 17h40

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