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

Linux Discussion :

Variable environnemment


Sujet :

Linux

  1. #1
    Membre régulier
    Inscrit en
    Décembre 2004
    Messages
    95
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 95
    Points : 74
    Points
    74
    Par défaut Variable environnemment
    Bonjour,

    je voudrais créer un script initialisant mes variables d'environnement au démarrage mais voila celui ci s'éxécute sans erreur mais les variables d'environnement crée ne sont plus visible en sortie du script...

    Voici mon script

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    #!/bin/bash
    export NOM="Moi"
    echo $NOM
    Mon script m'affiche bien < MOI > mais en sortiede ce script si je fais un
    La variable n'est plus reconnue, elle m'affiche une chaîne vide.

    Merci d'avance pour votre aide

    Nicolas.

  2. #2
    Membre averti Avatar de blackstreet
    Inscrit en
    Avril 2004
    Messages
    304
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 304
    Points : 335
    Points
    335
    Par défaut
    Bonsoir,
    Tous d'abord, essayer de voir si la variable est reconnu en tant "Variables d'environnements":

    Faites : env|grep NOM et vois si le contenu de la variable est affiché ou pas.

  3. #3
    Membre du Club Avatar de septox
    Inscrit en
    Novembre 2003
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 62
    Points : 66
    Points
    66
    Par défaut
    il faut verifier que l'utilisateur qui le lance au demarrage
    est le meme qu'apres.

  4. #4
    Membre expert
    Avatar de 2Eurocents
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    2 177
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 2 177
    Points : 3 166
    Points
    3 166
    Par défaut
    Lorsqu'un script est lancé, il tourne dans sa propre copie de l'environnement. Il peut le modifier à loisir, mais dès qu'il se termine, l'environnement appelant est restitué et les modifications sont perdues pour la suite.

    Il reste deux options :
    1. mettre les modifications de variables d'environnement dans les fichiers qui sont parcourus au lancement de l'environnement (.bashrc, .cshrc, /etc/profile, ... selon le shell voulu et l'ampleur de la modification souhaitée - un seul utilisateur ou tous)
    2. "Sourcer" le script qui doit altérer l'environnement :ou


    Bon courage.

  5. #5
    Membre régulier
    Inscrit en
    Décembre 2004
    Messages
    95
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 95
    Points : 74
    Points
    74
    Par défaut
    Mon script doit être lancé au démarrage de mon système embarqué. J'utilise busybox pour créer mes fonctions de base et la commande source n'existe pas.

    De plus lorsque je demarre la variable USER est initialisé a root mais je ne suis pas dans le repertoire home de root comme indiqué dans le fichier passwd..
    Je suis dans le repertoire /

    Je ne sais pas d'ou peut venir le problème..

    Nicolas.

  6. #6
    Membre expert
    Avatar de 2Eurocents
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    2 177
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 2 177
    Points : 3 166
    Points
    3 166
    Par défaut
    Citation Envoyé par nicolaskarp
    Mon script doit être lancé au démarrage de mon système embarqué. J'utilise busybox pour créer mes fonctions de base et la commande source n'existe pas.
    source est une commande interne de bash.

    Quel est le shell de busybox ?

    Citation Envoyé par nicolaskarp
    De plus lorsque je demarre la variable USER est initialisé a root mais je ne suis pas dans le repertoire home de root comme indiqué dans le fichier passwd..
    Je suis dans le repertoire /

    Je ne sais pas d'ou peut venir le problème..
    Il te reste la possibilité de mettre ton "export" ... dans les fichiers qui sont utilisés lors du démarrage du shell, genre /etc/profile ... (à adapter selon le shell utilisé)

  7. #7
    Membre régulier
    Inscrit en
    Décembre 2004
    Messages
    95
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 95
    Points : 74
    Points
    74
    Par défaut
    Mon shell de busybox est ash.

    Je vais essayer de faire ce que tu m'as dit.

    Merci

    Nicolas.

  8. #8
    Rédacteur
    Avatar de Arnaud F.
    Homme Profil pro
    Développeur COBOL
    Inscrit en
    Août 2005
    Messages
    5 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur COBOL
    Secteur : Finance

    Informations forums :
    Inscription : Août 2005
    Messages : 5 183
    Points : 8 873
    Points
    8 873
    Par défaut
    Bon si tu veux faire ça, faut le faire en root

    Tout les scripts sont qui sont lancés au démarrage sont dans le dossier:
    /etc/profile.d (sous Mandirva 2006)

    Donc, pour commencer, tu créé ton script dans un éditeur (VI par exemple), par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    #!/bin/sh
    export NOM="Moi"
    tu l'enregistre en .sh

    tu ouvre un console et tu te loggue en root:
    tu modifie les droits sur le fichier que tu viens de créér, pour ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    chmod 755 TonFichier.sh
    puis tu le copie dans le dossier /etc/profile.d, pour ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cp TonFichier.sh /etc/profile.d/
    Moi j'ai du faire un script aussi pour initialiser une variable CLASSPATH au démarrage du systeme, et ça fonctionne a merveille
    Voilà dis moi si il y a qqchose que tu ne comprend pas

  9. #9
    Membre régulier
    Inscrit en
    Décembre 2004
    Messages
    95
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 95
    Points : 74
    Points
    74
    Par défaut
    bucheron67 :
    Salut je veux juste te préciser que je suis sous aucune distrib.. Je crée ma distrib de fond en comble J'ai crée tous mes repertoires a la main, j'ai compilé mon noyau..

    Mon système est un système embarqué donc utilise mopins de ressource qu'un système normal..

    2Eurocents :


    J'ai bien fais ce que tu mas dit mais ca ne marche pas. Dans .bashrc, jai mis mes export, toujours pas pris en compte dans le shell ASH.. Je vais essayer de voir si il ne lit pas d'autres fichiers..

    Nicolas.

  10. #10
    zul
    zul est déconnecté
    Membre éclairé Avatar de zul
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    498
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 498
    Points : 699
    Points
    699
    Par défaut
    A mon avis, le meilleur endroit pour les faire dans un environnement embarqué c'est dans /etc/profile ( sauf si tu es en multi utilisateur mais j'en doute ).
    .bashrc est un fichier de configuration uniquement lu par bash. Les fichiers de configuration classique pour sh sont /etc/profile et .profile ( voir http://netbsd.gw.com/cgi-bin/man-cgi?sh++NetBSD-current par exemple ).

Discussions similaires

  1. Réponses: 4
    Dernier message: 18/07/2002, 13h32
  2. variables locales ou globales ???
    Par elvivo dans le forum C
    Réponses: 13
    Dernier message: 03/07/2002, 08h22
  3. Procédure avec un nombre variable d'arguments
    Par charly dans le forum Langage
    Réponses: 15
    Dernier message: 21/06/2002, 11h08
  4. Réponses: 4
    Dernier message: 05/06/2002, 14h35
  5. les variables globales static
    Par gRRosminet dans le forum C
    Réponses: 8
    Dernier message: 27/04/2002, 08h34

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