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

bash source relatif



  1. #1
    robotzeus1

    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
    robotzeus1

    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
    Chanur

    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.
    Ce qui se conçoit bien s'énonce clairement ; et les mots pour le dire arrivent aisément.

  4. #4
    robotzeus1

    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
    Chanur

    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 ?
    Ce qui se conçoit bien s'énonce clairement ; et les mots pour le dire arrivent aisément.

  7. #6
    robotzeus1

    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 robotzeus1 dans le forum Programmation et langages, Algorithmique
    Réponses: 11
    Dernier message: 29/06/2017, 10h10
  2. bash sed et makefile
    Par bbdoll dans le forum Programmation et langages, Algorithmique
    Réponses: 25
    Dernier message: 07/08/2012, 14h36
  3. Variables en bash
    Par Le Génie de la Lampe dans le forum Programmation et langages, Algorithmique
    Réponses: 9
    Dernier message: 12/04/2012, 09h33
  4. Csh et bash
    Par invite70eda27f dans le forum Logiciel - Software - Open Source
    Réponses: 7
    Dernier message: 28/04/2009, 08h00
  5. Probleme arrivée d' eau LV bash
    Par Viki dans le forum Dépannage
    Réponses: 0
    Dernier message: 21/11/2006, 09h33