Comment trouver le répertoire où se trouve un script bash à l'intérieur du script
Pendant que les scripts de bases, vous pouvez nécessiter l'emplacement du script pour automatiser diverses tâches. Il existe deux types de chemins dans Linux:
L'un des moyens les plus courants de déterminer l'emplacement d'un script bash est d'utiliser le PWD commande. Le PWD commande (Répertoire de travail imprimé) Affichera le répertoire actuel.
Donc, dans de nombreuses situations en utilisant simplement PWD La commande ne fonctionne pas car elle ne donne que le chemin du répertoire actuellement en activité.
Par exemple, si le script est dans le Téléchargements répertoire et exécuté à partir du Bureau alors la sortie contiendra le / Home / USR / Desktop pas l'emplacement du fichier de script bash qui est / Home / USR / Téléchargements.
Ce tutoriel consiste à obtenir le chemin du répertoire dans lequel le fichier de script bash est situé à l'intérieur du script.
Comment obtenir le chemin du répertoire où se trouve le fichier de script bash
Une autre façon de déterminer le répertoire d'un script bash est d'utiliser le dirname commande. Le dirname La commande prend un chemin de fichier comme argument et renvoie la partie du répertoire du chemin.
Utiliser dirname Commande Pour déterminer le répertoire d'un script, vous appelleriez la commande avec le chemin jusqu'à les derniers composants non slash du script comme argument.
Pour plus de détails sur dirname Exécutez les commandes suivantes dans le terminal:
$ man dirname
Seul dirname ne fonctionnera pas, nous avons besoin d'une autre commande qui est link de lecture. Le link de lecture L'impression de la commande a résolu le lien symbolique. Obtenez plus d'informations sur cette commande en exécutant:
$ man liclink
Maintenant, Créer un script:
$ sudo nano myscript.shot
Et type:
#!/ bac / bash
echo "Le chemin de script bash est $ (dirname -" $ (readLink -f - "0") ";)";
Pour exécuter l'utilisation du script:
$ bash myscript.shot
Changeons le répertoire et voyons quelle est la sortie:
Note: Dans un cas, le script ci-dessus ne fonctionnera pas si le fichier est d'origine au lieu de s'exécuter car il peut être vu dans la sortie suivante:
La sortie est / Home / Sam / Desktop tandis que le fichier de script est présent dans le / Home / Sam annuaire.
Conclusion
En conclusion, il existe plusieurs façons de déterminer le répertoire d'un script bash à l'intérieur du script lui-même. Le dirname avec link de lecture L'utilitaire peut être utilisée pour déterminer le répertoire d'un script. Cependant, simplement utiliser PWD La commande ne fonctionne pas car elle ne donne que le répertoire actuellement fonctionnel.