web-dev-qa-db-fra.com

Répertoire courant du script shell?

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?

44
Suzan Cioc

Le répertoire (initial) actuel du script Shell est le répertoire à partir duquel vous avez appelé le script.

17
Merouane KHALILI

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}"
94
krg

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"

25
saada

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é .

7
keyser