Utilisation de la variable BASH_SOURCE[0]

Ainsi, nous aurons le chemin absolue vers le script :

DIRECTORY="$(cd "$(/usr/bin/dirname "${BASH_SOURCE[0]}")" && /bin/pwd)"

Ceci permet au script d’avoir, peu importe depuis où il est exécuté (et peu importe comment), le chemin absolue de son dossier. Chemin qui est nécessaire pour inclure des fichiers de functions / variables, par exemple.
/bin/pwd retourne le chemin vers le dossier actuel, inintéressant dans notre cas (du moins pour le moment). ${BASH_SOURCE[0]} va contenir le chemin par lequel le script sera invoqué. De cette façon, si nous invoquons le script avec /home/user1/folder/script.sh, cette variable aura exactement ce chemin comme valeur. Ceci étant, si jamais le script est invoqué avec un chemin relatif, cette variable pourrait très bien avoir une valeur comme celle-ci :

     .././script.sh

Ce qui n’est pas vraiment exploitable en tant que tel. C’est pourquoi avec l’outil « dirname », nous allons supprimer le dernier segment de notre lien. Nous aurons donc :

     ../.

ou encore :

     /home/user1/folder

A partir de là, le reste tombe sous le sens. Déplacement temporaire dans ce dossier via le

cd "$(/usr/bin/dirname "${BASH_SOURCE[0]}")"

Ce qui nous laisse enchaîner juste après notre /bin/pwd qui retourne cette fois le chemin absolue vers le dossier de notre script.

Lu 349 fois

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *