Quel est le répertoire actuel du script Shell? Je ce répertoire actuel à partir duquel je l'ai appelé? Ou ce répertoire où se trouve le script?
Le répertoire (initial) actuel du script Shell est le répertoire à partir duquel vous avez appelé le script.
Comme déjà mentionné, l'emplacement sera d'où le script a été appelé. Si vous souhaitez que la référence du script soit son emplacement d'installation, c'est assez simple. Ci-dessous un extrait qui imprimera le PWD et le répertoire installé
#!/bin/bash
echo "Script executed from: ${PWD}"
BASEDIR=$(dirname $0)
echo "Script location: ${BASEDIR}"
La plupart des réponses vous donnent le chemin actuel et sont contextuelles. Afin d'exécuter votre script à partir de n'importe quel répertoire, utilisez l'extrait ci-dessous.
DIR="$( cd "$( dirname "$0" )" && pwd )"
En changeant de répertoire dans un sous-shell, nous pouvons alors appeler pwd
et obtenir le chemin correct du script quel que soit le contexte.
Vous pouvez ensuite utiliser $DIR
comme "$DIR/path/to/file"
Vous pouvez le faire vous-même en vérifiant la sortie de pwd
lors de son exécution. Cela affichera le répertoire dans lequel vous vous trouvez actuellement . Pas le script.
Si votre script ne change pas de répertoire, il affichera le répertoire à partir duquel vous l'avez exécuté .