Comment puis-je exécuter un script arbitraire avec un répertoire de travail de l'annuaire de son?
J'ai besoin d'exécuter un fichier de script groovy de bash, et j'ai besoin d'un script pour avoir un répertoire de travail du répertoire, il existe en.
Qui est, dans mon script bash, je suis en train de faire ceci:
/opt/script/myscript.groovy &
Mais ce qui semble définir le répertoire de travail pour /etc/init.d
, le répertoire que je vais appeler. Comment puis-je changer le répertoire de travail pour que le script de /opt/script
?
La réponse est ici, sous une forme ou sous une autre: stackoverflow.com/questions/59895/...
Sauf qu'il ne l'est pas. Arbitraire script implique bash. Bash réponses spécifiques seront downvoted.
Sauf qu'il ne l'est pas. Arbitraire script implique bash. Bash réponses spécifiques seront downvoted.
OriginalL'auteur Stefan Kendall | 2011-09-09
Vous devez vous connecter pour publier un commentaire.
probablement vous running (de départ) que le script de
/etc/init.d
?Ajouter
cd /opt/script
à la première ligne du scriptOU
...de la conserver dynamique, ajouter:
cd "$(dirname "$0")"
OriginalL'auteur The Bndr
Si vous utilisez start-stop-daemon à l'intérieur de votre /etc/init.d un script, vous pouvez profiter du paramètre-d pour la réalisation de ce:
OriginalL'auteur David Santiago Turiño
Dans
bash
de le mettre dans le script fonctionne à son meilleur:Cela permettra de réussir, même avec l'invocation suivante (de
/path/to/script.sh
):où
HERE=$(dirname $0)
serait un échec.En option vous pouvez également utiliser
pwd -P
au lieu de simplementpwd
, puis$HERE
contiendra la fonction realpath (canonisés chemin absolu) que deman 3 realpath
.OriginalL'auteur Johannes Weiss
Quelque chose comme ceci peut-être:
popd
n'est pas nécessaire dans n'importe quel environnement à l'exception d'un DOS .Fichier BAT; ce qu'un processus de changement de répertoire ne peut pas affecter le répertoire du programme qui s'exécute.OriginalL'auteur Let_Me_Be