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 :

Variable d'environnement : mon script vs .bashrc


Sujet :

Shell et commandes GNU

  1. #21
    Membre confirmé
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Juillet 2020
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juillet 2020
    Messages : 175
    Par défaut
    En fait, non, pas que.

  2. #22
    Membre confirmé
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Juillet 2020
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juillet 2020
    Messages : 175
    Par défaut
    Bonjour à tous,
    Voici ce que je constate en test :
    Prérequis :
    - fichier qui contient toutes mes variables utiles*: ~/.varUtiles.vps
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    # ~/.varUtiles.vps: contient toutes les variables que l'on rencontre dans Mes scripts.
    # N° IP du VPS :
    VPSNoIP=5555555555555555555555555555555555555555555555
    - Contenu dans ~/.bashrc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    source ~/.varUtiles.vps
    - Mon script : ./script.sh :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    echo "***** SAISIR ADRESSE IP du VPS *****"
    read varVPSNoIP
    sed -i "/VPSNoIP=/c VPSNoIP=$varVPSNoIP" ~/.varUtiles.vps
    source ~/.varUtiles.vps
    echo $VPSNoIP
    Exécution:
    donne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ***** SAISIR ADRESSE IP du VPS *****
    77777777777777777777
    77777777777777777777
    Donc ma variable s'affiche SEULEMENT si j'ai bien sourcer ~/.varUtiles.vps dans mon script.sh

    Par contre, hors script, dans le terminal,
    donne
    càd l'ancienne valeur.
    Pour voir la nouvelle valeur de ma variable dans le terminal, je dois sois fermer/réouvrir le terminal,
    soit faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    source ~/.varUtiles.vps
    Comme cela je peux transférer mon fichier de var vers le VPS pour y être exploiter.

    C'est bien comme cela qu'il faut faire donc, c'est la manière la plus propre ?
    Tu ne vois pas de bizarerie ?

  3. #23
    Expert confirmé Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 287
    Par défaut
    Bonjour

    • Déjà, tu as fait disparaître le mot export. Ce qui fait que ton affectation est très locale à ton script, que ce soit le fichier sourcé, ou le ~/.bashrc, ou autre.
    • Ensuite, tu as encore oublié de protéger la variable par des guillemets, ce qui mettra ton script en vrac si l'utilisateur tape une espace.
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      sed -i "/\<VPSNoIP\>=/c VPSNoIP=\"$varVPSNoIP\""
    • Enfin sourcer tout ton fichier de valeurs au prétexte qu'une seule valeur a changé n'a aucun sens puisque tu es dans le script dans lequel la nouvelle valeur est apparue. (ligne 4 de ton code)

  4. #24
    Membre confirmé
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Juillet 2020
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juillet 2020
    Messages : 175
    Par défaut
    Bonjour à tous,

    @Flodelarab

    J'ai rajouté l'export et les \".
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed -i "/\<export VPSNoIP\>=/c export VPSNoIP=\"$varVPSNoIP\"" /home/toto/.varUtiles.vps
    Par contre, pourquoi as-tu rajouté \< et \> ?

    Et aussi pourquoi dis-tu que ca n'a pas de sens de faire le source ?
    Car si je ne le mets pas, l'echo ne renvoie pas l'adresse saisie mais l'ancienne.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    echo "***** SAISIR ADRESSE IP du VPS *****"
    read varVPSNoIP
    sed -i "/\<export VPSNoIP\>=/c export VPSNoIP=\"$varVPSNoIP\"" /home/toto/.varUtiles.vps
    source /home/toto/.varUtiles.vps
    echo $VPSNoIP

  5. #25
    Expert confirmé Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 287
    Par défaut
    Par contre, pourquoi as-tu rajouté \< et \> ?
    Ça veut dire debut-de-mot et fin-de-mot. Quand je vois que tu es capable d'appeler des variables varVPSNoIP alors qu'il existent des variables VPSNoIP, je pense qu'il est nécessaire de se protéger des quiproquos en signifiant que VPSNoIP est le mot entier. Sinon, ton fichier de valeurs pourrait être défiguré, automatiquement.

    Car si je ne le mets pas, l'echo ne renvoie pas l'adresse saisie mais l'ancienne.
    Et oui. Y a pas de miracle. Si tu n'affectes pas, ça n'affecte pas.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    echo "***** SAISIR ADRESSE IP du VPS *****"
    read varVPSNoIP
    sed -i "/export VPSNoIP\>=/c export VPSNoIP=\"$varVPSNoIP\"" /home/toto/.varUtiles.vps
    export VPSNoIP="$varVPSNoIP"
    echo $VPSNoIP
    Au lieu de "source".

  6. #26
    Membre confirmé
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Juillet 2020
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juillet 2020
    Messages : 175
    Par défaut
    Génial, parfait, merci ;-)

    Par contre, pour corriger, c'est bien
    à mettre dans le script, et non pas

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. [Python 2.X] Lire et utiliser fichier contenant variable d'environnement dans script Python
    Par ptonnerre dans le forum Général Python
    Réponses: 1
    Dernier message: 05/12/2015, 18h57
  2. Récupération d'une variable PHP dans mon script JS
    Par dojbouli dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 21/04/2013, 12h52
  3. Script variable d'environnement système
    Par popinenhbourg dans le forum Windows
    Réponses: 8
    Dernier message: 19/07/2007, 17h51
  4. changer une variable d'environnement a partir d'un script
    Par doomxl dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 28/06/2007, 13h08
  5. Réponses: 1
    Dernier message: 11/01/2007, 15h57

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