La plupart des réponses vous donnent le chemin actuel et sont sensibles au contexte. Pour 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 alors utiliser $DIR
comme "$DIR/path/to/file"
Le répertoire courant (initial) du script shell est le répertoire à partir duquel vous avez appelé le script.
Comme déjà mentionné, l'emplacement sera celui d'où le script a été appelé. Si vous souhaitez que le script référence son emplacement d'installation, c'est assez simple. Vous trouverez 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}"