Lorsque vous appelez une commande dans le shell, le nouveau processus hérite du répertoire de travail du parent. Voici deux façons d'obtenir le répertoire de travail:
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, cdmais avant de le faire, vous pwdl'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 pushdet popd.
@jordanm En effet, mais ce ne sera pas nécessairement le répertoire de travail initial (par exemple, si vous l'avez utilisé cddeux fois)
derobert
$ OLDPWD est ce dont j'ai besoin; J'exécute des scripts bash à partir de l'invite CMD sur Win7 et c'était la variable d'environnement qui contenait le répertoire à partir duquel j'exécute le script. Santé
Réponses:
Lorsque vous appelez une commande dans le shell, le nouveau processus hérite du répertoire de travail du parent. Voici deux façons d'obtenir le répertoire de travail:
la source
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, vouspwd
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)
Si vous l'utilisez pour revenir au répertoire dans lequel vous avez commencé, voir également
pushd
etpopd
.la source
cd
deux fois)