Bash : remplacement de variables
Répondre à la discussion
Affichage des résultats 1 à 5 sur 5

Bash : remplacement de variables



  1. #1
    Bruno

    Bash : remplacement de variables


    ------

    Bonjour,

    Je suis en train d'écrire un scipt bash et je bute sur un problème. Il s'agit de remplacer dans l'expression "Bonjour ... $ipMachine" $ipMachine par sa valeur.

    Ainsi le remplacement est fait correctement :

    Code:
    ipMachine="1.2.3.4"
    texte="Bonjour ... $ipMachine"
    echo "$texte"
    >> bash a.sh
    Bonjour ... 1.2.3.4
    Mais lorsqu'il s'agit d'importer le texte depuis un fichier, le remplacement ne se fait plus :

    Code:
    ipMachine="1.2.3.4"
    texte="`cat ./fichier`"
    echo "$texte"
    >> cat fichier
    Bonjour ... $ipMachine
    >> bash a.sh
    Bonjour ... $ipMachine
    Comment faire pour que le contenu du fichier soit équivalent à celui du premier script ?

    Merci d'avance.

    -----

  2. #2
    invite4ad25ccf

    Re : Bash : remplacement de variables

    eval is your friend

    Un petit exemple valant mieux qu'un long discours :
    Code:
    $ a="echo 'coucou'"
    $ eval $a
    coucou
    $

  3. #3
    Bruno

    Re : Bash : remplacement de variables

    Citation Envoyé par Towl Voir le message
    eval is your friend

    Un petit exemple valant mieux qu'un long discours :
    Code:
    $ a="echo 'coucou'"
    $ eval $a
    coucou
    $
    Hmm, je vois pas le rapport avec mon problème ? C'est juste que dans le premier cas, il remplace $ipMachine par 1.2.3.4 mais pas dans le second.

  4. #4
    invite4ad25ccf

    Re : Bash : remplacement de variables

    Voici le code qui correspond à ton exemple :
    Code:
    $ cat fichier
    Bonjour $ipMachine
    $ cat a.sh
    #!/bin/bash
    
    ipMachine="1.2.3.4"
    texte=`cat ./fichier`
    eval echo $texte
    $ ./a.sh
    Bonjour 1.2.3.4
    $

  5. A voir en vidéo sur Futura
  6. #5
    Bruno

    Re : Bash : remplacement de variables

    Citation Envoyé par Towl Voir le message
    Voici le code qui correspond à ton exemple :
    Code:
    $ cat fichier
    Bonjour $ipMachine
    $ cat a.sh
    #!/bin/bash
    
    ipMachine="1.2.3.4"
    texte=`cat ./fichier`
    eval echo $texte
    $ ./a.sh
    Bonjour 1.2.3.4
    $
    Ah, j'avais pas vu les '' au lieu des ``, merci beaucoup

Discussions similaires

  1. Commande cd dans un fichier bash
    Par invite70eda27f dans le forum Logiciel - Software - Open Source
    Réponses: 6
    Dernier message: 02/07/2008, 18h32
  2. Remplacement
    Par invitee0fd7677 dans le forum Électronique
    Réponses: 6
    Dernier message: 23/05/2008, 10h09
  3. variables aléatoires
    Par invited7555812 dans le forum Mathématiques du supérieur
    Réponses: 7
    Dernier message: 18/05/2007, 19h10
  4. Probleme arrivée d' eau LV bash
    Par invitef25c2fbe dans le forum Dépannage
    Réponses: 0
    Dernier message: 21/11/2006, 09h33
  5. Fonction à 2 variables
    Par invitec526837a dans le forum Mathématiques du collège et du lycée
    Réponses: 1
    Dernier message: 22/09/2006, 22h52
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...