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

Résolu
xunil2003 Messages postés 766 Date d'inscription   Statut Membre Dernière intervention   -  
xunil2003 Messages postés 766 Date d'inscription   Statut Membre Dernière intervention   -
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. xunil2003 Messages postés 766 Date d'inscription   Statut Membre Dernière intervention   14
     
    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
  2. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    hello
    utiliser la variable PWD
    source ${PWD}/mysql.sh
    0
  3. xunil2003 Messages postés 766 Date d'inscription   Statut Membre Dernière intervention   14
     
    Bonjour,

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


    Merci.
    0
  4. xunil2003 Messages postés 766 Date d'inscription   Statut Membre Dernière intervention   14
     
    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    p=$(which mysql.sh) ; echo ${p%/*}
    ou
    dirname $(which  mysql.sh)
    0
  7. xunil2003 Messages postés 766 Date d'inscription   Statut Membre Dernière intervention   14
     
    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