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 :

Imbrication de shell : problème de liens


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    378
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 378
    Par défaut Imbrication de shell : problème de liens
    Bonjour,

    je perds mon latin sur l'imbrication des scripts shell

    situation : j'ai l'arborescence suivante :

    /home/user/job/monrep

    dans monrep j'ai deux fichiers et un répertoire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    - config.sh    (fichier)
    - install.sh     (fichier)
    xxx SCRIPT  (répertoire)
    config.sh
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    #!/bin/bash
     
     
    export USERNAME="user"
    export PWD_USERNAME="user"
     
    export NDD="monsite"
    export NDD_EXTENSION="FR"
     
    #export CONF_APT_FORCE="-y --force-yes"
    export CONF_APT_FORCE="-y"
    le fichier install.sh
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    #!/bin/bash
     
    config.sh
    . `dirname $0`/script/test.sh
    lorsque je tape les commandes d'exécution depuis le répertoire ou celui d'avant j'obtiens les message d'erreurs
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    # sh install.sh
    : not found 4: install.sh: config.sh
    install.sh 5: .: Can't open ./script/test.sh
    #cd ..
    #sudo sh monrep/install.sh
    : not foundinstall.sh : 4: monrep/install.sh: config.sh
    monrep/install.sh: 5: .: Can't open monrep/script/test.sh
    J'ai essayé avec d'autres commandes mais sans succès

    Merci

    P.S : l'objectif est rendre portable cet ensemble de script

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

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

    c'est quand même le B-A-BA : comment exécuter un script shell
    - placer un shebang sur la première ligne, pour indiquer au noyau quel shell utiliser.
    - rendre le script exécutable
    - exécuter le script en donnant son chemin relatif, ou son chemin absolu. Il est très rare est pas recommandé que le répertoire courant soit dans la variable PATH (mes scripts sont dans ~/bin, qui est dans mon PATH)

    pour la commande source (.), tape help source, ou regarde le man de ton shell. Je crois que tu confonds ./monScript, et . monScript.
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    378
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 378
    Par défaut
    Merci, je sais que cela est le baba et j'ai bien mis le
    shebang en première ligne (ne pas se fier aux numéro mis automatiquement par le forum)

    les fichiers sont exé et même trop (chmod 777) mais je voulais être certains que cela ne venait pas d'un pb de droits

    même en mettant le chemin absolu ou relatif j'ai toujours les mêmes messages

    voila pourquoi j'ai posé la question

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 646
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    #!/bin/bash
     
    config.sh #il n'y a pas de chemin, et tu ne sources pas le script
    . `dirname $0`/script/test.sh #ici, tu sources le script
    ce devrait être
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    #!/bin/bash
     
    . config.sh
    `dirname $0`/script/test.sh
    Code BASH : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $ cat > config
    export maVar=toto
    $ . config.sh 
    $ echo $maVar
    toto
    le shebang n'est pas nécessaire dans un fichier sourcé, c'est le shell du script appelant, qui en exécutera les commandes.
    l'extension d'un script bash devrait être «.bash», ou rien.
    sh n'est pas forcément bash : export ne se comporte pas de la même manière dans ces deux shells.
    quand je dis exécuter, ça veut dire ne pas appeler le shell suivi du nom du script.
    Citation Envoyé par altair8080
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    378
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 378
    Par défaut
    J'ai trouvé cela concernait un problème bête de CRLF qui faisait plantait mes scripts alors qu'ils étaient bons.

    l'origine est que j'avais voulu m'avancer en tapant mes sources sur un notepad windows que j'ai ensuite transféré

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

Discussions similaires

  1. [XSL]problème de liens via feuille de style, images....
    Par snoop dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 29/06/2005, 10h57
  2. [DOM]Problème de liens sous ie
    Par Buster dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 17/05/2005, 16h13
  3. Problème de lien sur date entre Access et MySQL-4.1
    Par michou42 dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 04/04/2005, 23h31
  4. Problème de lien
    Par D-D dans le forum ASP
    Réponses: 10
    Dernier message: 03/06/2004, 17h02

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