J'ai un script doSmth
dans /usr/bin
. Est-il possible d'obtenir et d'imprimer le répertoire à partir duquel le script a été appelé ?
Donc, si j'appelle doSmth
de /home/me
la sortie sera /home/me
.
J'ai un script doSmth
dans /usr/bin
. Est-il possible d'obtenir et d'imprimer le répertoire à partir duquel le script a été appelé ?
Donc, si j'appelle doSmth
de /home/me
la sortie sera /home/me
.
Réponses:
Par "répertoire auquel il a été appelé", vous semblez vouloir dire son répertoire de travail. Vous pouvez changer cela à l'intérieur du script en utilisant par exemple, cd
mais avant de le faire, vous pwd
l'imprimerez. Ce sera aussi probablement dans la variable$PWD
Si vous aurez besoin du répertoire de travail initial après l'avoir changé, enregistrez-le simplement en haut de votre script (avant de le changer)
#!/bin/bash
initial_wd=`pwd`
# ... do a lot of stuff ...
# ⋮
cd "$initial_wd"
Si vous l'utilisez pour revenir au répertoire dans lequel vous avez commencé, voir également pushd
et popd
.
cd
deux fois)