Récupérer le chemin d'exécution de mon script

Résolu
Bonjour,

J'ai besoin de récupérer le chemin d'exécution de mon script bash

J'ai fait ceci mais ça marche pas
pwd $chemin_script_bash  
source $chemin_script_bash/mysql.sh


il devrai comprendre que le chemin d'exécution est : /home/serveur/Domotique/ordres/mysql ??????

mysql.sh
#------- CONNECTION A LA BASSE DE DONNES AVEC BASH -------------
hote_db="localhost"
nom_bd="domotique"
login_db="xxxxxx"
pass_bd="xxxxxx"


Merci.

6 réponses

  1. Bonjour,

    Du coup j'ai fait comme ceci mais il met plus de temps à réagir avec une fonction 5 secondes de plus.
    chemin_script_bash(){   
    pwd   
            }   
    source  $(chemin_script_bash)/mysql.sh


    Avec une variable c'est pas possible ?

    Merci.
    0
    1. Contributeur
      hello
      utiliser la variable PWD
      source ${PWD}/mysql.sh
      0
      1. Bonjour,

        Merci c'est beaucoup plus rapide et moins de ligne de code
        source ${PWD}/mysql.sh


        Merci.
        0
        1. Bonjour,

          J'ai ajouté mon chemin dans le PATH
          serveur@debian:~$ echo $PATH 
          /usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/home/serveur/scripts:/home/serveur/Domotique/ordres 
          serveur@debian:~$ 


          je me rend compte d'un problème

          source ${PWD}/mysql.sh

          me renvoie le chemin depuis lequel on exécute le script, pas celui où se trouve le script ???

          J'ai essayé avec
          path=$(dirname $0)
          et
          path=$(pwd $0) 


          Mais il me renvoi le chemin avec le nom du fichier comme ceci
          /home/serveur/Domotique/ordres/e1-on


          Ors il faudrait qu'il puisse me renvoyer le chemin où se trouve le script comme ceci
          /home/serveur/Domotique/ordres


          Comment puis je faire ?

          Merci
          0
          1. Contributeur
            p=$(which mysql.sh) ; echo ${p%/*}
            ou
            dirname $(which  mysql.sh)
            0
            1. Bonjour,

              Merci ça marche impeccable.
              chemin_bash=$(which mysql.sh) ; # renvoyer le chemin où se trouve le script 
              source ${chemin_bash%/*}/mysql.sh # Insertion du fichier de connexion a la basse de donnés mysql


              Merci.
              0