En gros, j'ai besoin d'exécuter le script avec des chemins liés à l'emplacement du fichier du shell script, comment puis-je changer le répertoire actuel pour le même répertoire que celui où réside le fichier script ?
Cela ne fonctionne pas si vous avez appelé le script via un lien symbolique dans un répertoire différent. Pour que cela fonctionne, vous devez utiliser readlink
également (voir la réponse d'al ci-dessous)
14 votes
S'agit-il vraiment d'un doublon ? Cette question concerne un "shell unix script", l'autre concerne spécifiquement Bash.
2 votes
@BoltClock : Cette question a été fermée de manière inappropriée. La question liée porte sur Bash. Cette question porte sur la programmation du shell Unix. Remarquez que les réponses acceptées sont très différentes !
0 votes
@Dietrich Epp : Vous avez raison. Il semble que le choix de la réponse acceptée par l'auteur de la question et l'ajout de la balise [bash] (probablement en réponse à cela) m'ont amené à marquer la question comme un doublon en réponse à un drapeau.
3 votes
Je pense que cette réponse est meilleure : Obtenir le répertoire source d'un script Bash à partir de l'intérieur d'un fichier
2 votes
Duplicata possible de Obtenir le répertoire source d'un script Bash à partir de l'intérieur d'un fichier
1 votes
Google m'a amené ici car je cherchais une implémentation pure posix de la solution. Après un peu plus de recherche, je suis tombé sur cette réponse très détaillée expliquant pourquoi ce n'est pas possible et un moyen de contourner le problème en réduisant le support des shells les plus populaires. stackoverflow.com/a/29835459/816584
0 votes
Ne peut-on pas affecter la sortie de la commande 'pwd' à une variable au début du script et ensuite utiliser la variable tout au long du script. Je ne suis pas sûr d'avoir bien compris la question