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 :

Définition de variables d'environnement depuis un script shell


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de Bayard
    Inscrit en
    Juin 2002
    Messages
    863
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 863
    Par défaut Définition de variables d'environnement depuis un script shell
    Bonjour

    Je suis sous Ubuntu 21.10

    Lorsque je crée une variable d'environnement à la main
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    HOME_DEF=/home/coucou
    export HOME_DEF
    ma variable est bien crée
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $HOME_DEF
    bash: /home/coucou : est un dossier

    par contre, lorsque je met les deux lignes dans un script .sh, que je lui met les droits en exécution chmod +x monscript.sh

    ./monscript.sh ne crée pas ma variable

    $HOME_DEF n'affiche rien


    Mais pourquoi ?

    Cordialement

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 652
    Par défaut
    Bonjour,

    un script ne s'exécute pas réellement de le shell en cours, mais dans un sous-shell.
    le script, s'exécutant dans un processus enfant, ne peut pas modifier l'environnement de son processus parent.

    pourquoi veux-tu modifier l'environnement courant depuis un script ?
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  3. #3
    Membre éclairé Avatar de Bayard
    Inscrit en
    Juin 2002
    Messages
    863
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 863
    Par défaut
    Pour ne pas avoir à retaper mes commandes à chaque fois.
    Ceci est utiliser pour compiler. Je veux pouvoir mettre à jour mes variables sans le faire en retapant tout.

  4. #4
    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
    Il faut sourcer ton script et pas l'exécuter :
    Rq : du coup tu peux (ou devrais) faire chmod -x monscript.sh.

  5. #5
    Membre éclairé Avatar de Bayard
    Inscrit en
    Juin 2002
    Messages
    863
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 863
    Par défaut
    Merci.

    Ca marche !

    Puis-je avoir une explication ?
    Que signifier sourcer ?

  6. #6
    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
    Cf. help . ou help source :
    Exécute des commandes depuis un fichier dans le shell actuel.
    Contrairement à l'exécution, qui exécute les commandes dans un sous-shell comme l'a dit N_BaH.

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 652
    Par défaut
    Citation Envoyé par balkany Voir le message
    tu peux (ou devrais) faire chmod -x monscript.sh.
    un script qu'on source n'a pas à être exécutable.
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  8. #8
    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
    Précisément : cette commande enlève les droits d'exécution (et toi tu peux enlever ton -1 sur mon message )

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 09/07/2012, 10h21
  2. Réponses: 3
    Dernier message: 18/12/2008, 07h29
  3. Définir une variable d'environnement depuis un script
    Par pmithrandir dans le forum Scripts/Batch
    Réponses: 5
    Dernier message: 05/11/2008, 11h24
  4. Réponses: 5
    Dernier message: 26/01/2008, 18h45
  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