J'ai besoin de connaître le chemin du script. Je peux le faire en utilisant pwd
si je suis déjà dans le même répertoire, j'ai cherché en ligne et j'ai trouvé ceci
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
Mais je ne sais pas comment utiliser ça.
Bash conserve un certain nombre de variables, dont BASH_SOURCE
, Qui est un tableau de noms de chemin d'accès au fichier source.
${}
Agit comme une sorte de citation pour les variables.
$()
agit comme une sorte de citation pour les commandes mais elles sont exécutées dans leur propre contexte.
dirname
vous donne la portion de chemin de l'argument fourni.
cd
change le répertoire actuel.
pwd
donne le chemin actuel.
&&
Est un and
logique mais il est utilisé dans cette instance pour son effet secondaire d'exécuter des commandes les unes après les autres.
En résumé, cette commande récupère le chemin du fichier source du script, l’élimine à la portion du chemin, cd
s à ce chemin, puis utilise pwd
pour renvoyer le chemin complet (en réalité) du script. Ceci est attribué à DIR
. Après tout cela, le contexte est décomposé et vous vous retrouvez dans le répertoire dans lequel vous avez commencé, mais avec une variable d’environnement DIR
contenant le chemin du script.