bash source relatif
Répondre à la discussion
Affichage des résultats 1 à 7 sur 7

bash source relatif



  1. #1
    invite3edbf683

    bash source relatif


    ------

    bonjour

    afin de simplifier la lecture de mes scripts j'aimerais mettre mes fonction dans un autre fichier et .... ben j'arrive pas a le faire fonctionner sans toute a cause de probleme de chemin relatif

    pour lancer mon script je fait
    Code:
    sudo bash ./media/............/programme/prog1.sh
    il contient
    Code:
    #!/bin/bash
    source ~/fonction.sh
    echo `coucou deux
    `

    fonction.sh est dans le même dossier que prog1.sh
    Code:
    #!/bin/bash
    function coucou
    {
    echo $1
    echo un
    }
    quant je lance prog1 il me dit qu'il ne trouve pas coucou (en revanche ca marche en chemin absolu)
    Vu que les fichier seront bougé ensemble je veux mettre un chemin relatif mais impossible de trouver le bon paramètre

    -----

  2. #2
    invite3edbf683

    Re : bash source relatif

    complément

    si je me place a l'emplacement du fichier et que je lance le bash cela fonctionne également.

    donc en gros lorsque j’exécute il faut qu'il source en relatif par rapport a l'emplacement du fichier executé et non en relatif de l'emplacement ou se situe l'utilisateur

  3. #3
    invite1c6b0acc

    Re : bash source relatif

    Bonjour,

    C'est parce que l'adressage relatif, c'est ./fonction.sh, et non pas ~/fonction.sh
    ~/fonction.sh est un path absolu : ~ représente le répertoire racine (home) de l'utilisateur courant.

  4. #4
    invite3edbf683

    Re : bash source relatif

    Oui en faite j'ai testé plusieurs chose don le ./ et sa ne marchais pas mieux

    le seule moyen que j'ai trouver pour que ca marche étant de faire
    Code:
    cd ./media/............/programme/
    sudo bash prog1.sh
    idéalement j'aimerais bien ne pas écrire 2 ligne pour lancer mon script mais vu que je seche pour le moment je laisse sa comme ca

  5. A voir en vidéo sur Futura
  6. #5
    invite1c6b0acc

    Re : bash source relatif

    si tu as besoin de préciser bash, déjà, c'est que tu n'a pas donné les permissions en exécution à tes scripts :
    chmod +x prog1.sh fonction.sh

    par ailleurs j'ai de gros doutes sur ton ./media
    tu as un répertoire media dans le répertoire courant ?

  7. #6
    invite3edbf683

    Re : bash source relatif

    oui effectivement car le script est sur clé usb car je test pas toujours sur le même ordinateur (sa me convient comme ca car je modifier et test assez rapidement comme ca)

  8. #7
    polo974

    Re : bash source relatif

    tu peux utiliser dirname
    exemple: j'ai mis mes fichiers au fin fond du /tmp.
    le main.sh source le lib.sh en retrouvant le path à partir de $0 (c'est clair, non ? ? ? ah bon...)

    Code:
    moi@AH530:~$ cat /tmp/gag/gag2/gag3/lib.sh 
    fct ()
    {
        pwd
    }
    moi@AH530:~$ cat /tmp/gag/gag2/gag3/main.sh
    echo $0
    dir=$(dirname $0)
    . $dir/lib.sh
    
    fct
    
    moi@AH530:~$ sudo /tmp/gag/gag2/gag3/main.sh
    /tmp/gag/gag2/gag3/main.sh
    /home/moi
    Jusqu'ici tout va bien...

Discussions similaires

  1. gpio rapsberry pi bash
    Par invite3edbf683 dans le forum Programmation et langages, Algorithmique
    Réponses: 11
    Dernier message: 29/06/2017, 11h10
  2. bash sed et makefile
    Par invite5420aad7 dans le forum Programmation et langages, Algorithmique
    Réponses: 25
    Dernier message: 07/08/2012, 15h36
  3. Variables en bash
    Par invitea09e49c1 dans le forum Programmation et langages, Algorithmique
    Réponses: 9
    Dernier message: 12/04/2012, 10h33
  4. Csh et bash
    Par invite70eda27f dans le forum Logiciel - Software - Open Source
    Réponses: 7
    Dernier message: 28/04/2009, 09h00
  5. Probleme arrivée d' eau LV bash
    Par invitef25c2fbe dans le forum Dépannage
    Réponses: 0
    Dernier message: 21/11/2006, 10h33