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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    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 Variable d'environnement : mon script vs .bashrc
    Bonjour,
    Je cherche à faire la variable d'env VPSNoIP avec le script suivant.
    Mais source /home/toto/.bashrc ne fonctionne pas dans le script c'est pourquoi je suis obligé de rajouter VPSNoIP=$varVPSNoIP.
    Et quand le script est terminé donc hors script, je fais echo $VPSNoIP qui est vide. Il faut que je fasse un arrêt/relance du terminal pour qu'il renvoie la valeur.
    C'est normal que la commande source ne fonctionne pas dans mon cas ?
    Elle est inutile dans mon script, non ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    read varVPSNoIP
    echo "export VPSNoIP=$varVPSNoIP" >> /home/toto/.bashrc
    source /home/toto/.bashrc
    VPSNoIP=$varVPSNoIP
    scp -P 22 /home/toto/scripts.zip root@$VPSNoIP:/root
    Pouvez-vous m'apportez votre expertise sur ce point svp ?

  2. #2
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 651
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 651
    Par défaut
    il faut nous expliquer la démarche de ton script, parce que je ne vois pas l'intérêt du source, ni celle de modifier ~/.bashrc.
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  3. #3
    Membre émérite Avatar de balkany
    Homme Profil pro
    Touriste
    Inscrit en
    Juillet 2017
    Messages
    348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Touriste

    Informations forums :
    Inscription : Juillet 2017
    Messages : 348
    Par défaut
    Citation Envoyé par BEEP-BEEP Voir le message
    Mais source /home/toto/.bashrc ne fonctionne pas dans le script […] Elle est inutile dans mon script, non ?
    Ce sourçage est effectivement inutile, mais il devrait fonctionner, si c'est bien bash qui interprète le script : as-tu un message d'erreur ? si oui, qu'est-ce que tu as mis comme première ligne du script ? comment l'exécutes-tu ?
    Citation Envoyé par BEEP-BEEP Voir le message
    Et quand le script est terminé donc hors script, je fais echo $VPSNoIP qui est vide. Il faut que je fasse un arrêt/relance du terminal pour qu'il renvoie la valeur.
    Ça c'est normal : l'export ne se fait que vers les processus enfants, or quand tu sors du script, tu reviens vers le processus parent.

  4. #4
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 651
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 651
    Par défaut
    source est un bashisme, si le script n'était pas exécuté par bash, le shell afficherait une erreur.
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  5. #5
    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
    Je modifie le .bashrc pour y mettre ma variable d'env afin qu'elle soit pérenne après arrêt/relance du terminal. Bref, pour qu'elle soit une vrai variable d'environnement
    J'utilise source, afin que la prise en compte soit immédiate. Mais je ne sais pas si je fais bien.
    Je ne sais pas si c'est bash qui interprète le script et je n'ai pas de message d'erreur.
    En première ligne du script j'ai mis ca au piffe : Je l'exécute comme cela : ./mon_script

  6. #6
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 651
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 651
    Par défaut
    je me demande si je voudrais vraiment sourcer tout mon ~/.bashrc pour fournir une petite variable à mon script...

    soit j'ai un fichier annexe (comme de simple fichier de données, ou un fichier de conf, que je mets à jour, ou que j'écrase),
    soit je modifie le script lui-même (sed 's/^maVar=/&nouvelleDonnée/' "$0", en gros).

    Citation Envoyé par BEEP-BEEP
    j'ai mis ça au pif


    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  7. #7
    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
    1)
    sourcer tout mon ~/.bashrc :
    Je ne sais pas ce que cela veut vraiment dire, ni avec quelles conséquences.
    Je l'utilise juste pour une prise en compte de ma var immédiatement en environnement

    2)
    soit j'ai un fichier annexe (comme de simple fichier de données, ou un fichier de conf, que je mets à jour, ou que j'écrase):
    Désolé mais je ne comprends pas dans ce cas la mise en oeuvre afin que ma var d'env soit pérenne après arrêt/relance du terminal ?

    3)
    soit je modifie le script lui-même (sed 's/^maVar=/&nouvelleDonnée/' "$0", en gros)
    Je ne comprends pas cette alternative : ^, &, $0...tu m'as perdu. Ca fait quoi ?

    4) Je ne sais pas comment on détermine ce qu'il faut mettre en première ligne...

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

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