Répertoire courant du script Shell?

Quel est le répertoire courant du script shell? Je ce répertoire actuel à partir duquel je l'ai appelé? Ou ce répertoire où script situé?

36
demandé sur Suzan Cioc 2012-03-27 16:55:34

4 réponses

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

13
répondu Merouane KHALILI 2012-03-29 08:23:14

Comme déjà mentionné, l'emplacement sera d'où le script a été appelé. Si vous souhaitez avoir la référence du script, c'est l'emplacement d'installation, c'est assez simple. Voici 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}"
75
répondu krg 2012-10-06 17:05:28

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 ensuite utiliser $DIR comme "$DIR/path/to/file"

18
répondu saada 2017-05-15 00:37:36

Vous pouvez le faire vous-même en regardant la sortie de pwd lors de l'exécution. Cela imprimera le répertoire dans lequel vous vous trouvez actuellement . Pas le script.

Si votre script ne change pas de répertoire, il imprimera le répertoire à partir duquel l'a exécuté .

7
répondu keyser 2016-06-19 09:30:31