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 :

Variables d'environnements


Sujet :

Linux

  1. #1
    Membre régulier Avatar de cubepiege
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 161
    Points : 78
    Points
    78
    Par défaut Variables d'environnements
    j'ai un fichier cron qui se trouve dans le repertoire /home/test dans lequel je mets a jours des executions quotidiennes.
    J'ai voulu implémenté une commande pwd dans un script se trouvant dans /home/travail/autre/debut.sh voici mon code:

    d'abord dans le cron
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    #SCRIPT DE TEST
    15 19 * * * /home/travail/autre/debut.sh
    puis dans le script en question
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    #!/bin/ksh
    . $HOME/.profile
    . dxconf
     
    #----------------------------------------------
    NOMBASE="$(pwd | sed 's/\// /g' | sed 's/travail/ /g' "
    echo $NOMBASE > /home/travail/autre/result.txt
    et le résultat est home, en fait la commande s'execute via le cron comme si la commande pwd etait passe depuis le repertoire /home.

    Si on le fait depuis /home/travail/autre/ a la main il m'affiche bien que le repertoire ou je me trouve est /home/travail/autre/. Quelqu'un a une explication siouplait m'sieu?
    merci

  2. #2
    Modérateur
    Avatar de ggnore
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 472
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 472
    Points : 4 029
    Points
    4 029
    Par défaut
    Hum, je suis pas sûr de bien saisir.

    Peut être qu'avec la commande de SuperGeek qu'est cd, tu t'en sortirais ?
    Toutes les vertus des hommes se perdent dans l’intérêt comme les fleuves se perdent dans la mer.
    N'oubliez pas de consulter les FAQ Linux et les cours et tutoriels Linux

  3. #3
    Membre chevronné

    Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 296
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 296
    Points : 1 803
    Points
    1 803
    Par défaut
    dans ton script tu invoque
    . $HOME/.....
    haie haie
    le cron ne te garantie pas les vatiables d'environnement ....
    tout doit être en absolue dedans ou redefinie un environnement complet !
    Marc
    Slackware for ever ......
    BASH - KSH ( http://marcg.developpez.com/ksh/ )

  4. #4
    Membre régulier Avatar de cubepiege
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 161
    Points : 78
    Points
    78
    Par défaut
    arg! ok mais je suis pas sûr de savoir ce qu'il faut faire.
    Je pense que tu as bien saisi le fond de mon probleme (test?) mais aurais tu un exemple concret ou bien une piste a me donner car là je décroche...

  5. #5
    Membre chevronné

    Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 296
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 296
    Points : 1 803
    Points
    1 803
    Par défaut
    la crontab ne se "log" pas en un utilisateur donc ne se positionne pas forcement dans son HOME et ne mes pas a jour la plupart des variables d'environnement
    au meme titre que tu donne le chemin du script dans la crontab ton script appeller doit faire de meme ou alors initialiser ses variables

    ton script et propre a chaque utilisateur ou 1 utilisateur en particulier ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    #!/bin/ksh
    # eventuellemnt un cd /home/utilisateur_qui_va_bien/
    . /home/utilisateur_qui_va_bien/.profile
    . /home/utilisateur_qui_va_bien/dxconf
     
    #----------------------------------------------
    NOMBASE="$(pwd | sed 's/\// /g' | sed 's/travail/ /g' "
    echo $NOMBASE > /home/travail/autre/result.txt
    si plusieru utilisateur de ce script lancer chacun avec SA crontab
    essaye via la variable : $LOGNAME (ou $USER)
    si elle ne sont pas a jour test avec cd ~
    Marc
    Slackware for ever ......
    BASH - KSH ( http://marcg.developpez.com/ksh/ )

  6. #6
    Membre régulier Avatar de cubepiege
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 161
    Points : 78
    Points
    78
    Par défaut
    je viens d'avoir une suggestion sur une autre maniere de trouver le repertoire en cours et extraire un mot en particulier:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    basename $(dirname $(pwd))
    Mais je veux attribuer ce résultat a une variable, comment faire car j'ai essayer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    NOMBASE=basename $(dirname $(pwd))
    echo $NOMBASE
    Mais ca ne marche pas.
    une suggestion? merci

  7. #7
    Membre chevronné

    Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 296
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 296
    Points : 1 803
    Points
    1 803
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    NOMBASE=$(basename $(dirname $(pwd)))
    la syntaxe var=$( commande ) permet d'affecté le resultat de la commande a var alors que var=commande affecte le code retour de la commande
    Marc
    Slackware for ever ......
    BASH - KSH ( http://marcg.developpez.com/ksh/ )

  8. #8
    Membre régulier Avatar de cubepiege
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 161
    Points : 78
    Points
    78
    Par défaut
    Merci beaucoup.
    Mais fais chier ! il me manque vraiment des bases importantes en matiere de syntaxe je devrais savoir ces choses depuis le temps.
    Tu n'aurais pas une reference interessante que je puisse lire pour ce genre de probleme? c tres frustrant d'etre bloque sur ce genre de chose!

    Merci

  9. #9
    Modérateur
    Avatar de ggnore
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 472
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 472
    Points : 4 029
    Points
    4 029
    Par défaut
    Mais tu es pas couché vu la taille !

    Sinon il y a ce guide en français que j'aime bien :
    http://madchat.org/coding/sh/write_a_shell_script-fr.htm

    Je crois que marcG a fait son propre manuel aussi sur developpez.com
    Toutes les vertus des hommes se perdent dans l’intérêt comme les fleuves se perdent dans la mer.
    N'oubliez pas de consulter les FAQ Linux et les cours et tutoriels Linux

  10. #10
    Membre chevronné

    Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 296
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 296
    Points : 1 803
    Points
    1 803
    Marc
    Slackware for ever ......
    BASH - KSH ( http://marcg.developpez.com/ksh/ )

  11. #11
    Membre régulier Avatar de cubepiege
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 161
    Points : 78
    Points
    78
    Par défaut
    merci pour l'info.

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

Discussions similaires

  1. [langage] Création de variable d'environnements
    Par Smaugg dans le forum Langage
    Réponses: 20
    Dernier message: 26/04/2004, 09h32
  2. [BES] Création d'une variable d'environnement
    Par NGI80 dans le forum Autres
    Réponses: 2
    Dernier message: 17/10/2002, 07h31
  3. nom de fichier et variables d'environnement
    Par joebarthib dans le forum Langage
    Réponses: 2
    Dernier message: 18/07/2002, 15h21
  4. Réponses: 4
    Dernier message: 18/07/2002, 13h32

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