83 votes

Comment exécuter un script dans un répertoire différent du répertoire courant ?

J'ai essayé d'exécuter un script avec cette commande :

./home/user/scripts/someScript

mais ça ne marche pas :

No such file or directory

Des idées ?

96voto

Lekensteyn Points 162346

Le point de tête dans votre commande signifie "relatif au répertoire actuel". Enlevez-le et elle fera référence au "fichier someScript dans le répertoire /home/user/scripts :

/home/user/scripts/someScript

Si vous obtenez "Permission refusée", c'est soit parce que vous n'avez pas les autorisations suffisantes pour accéder au fichier dans le répertoire des autres utilisateurs, soit parce que le fichier n'est pas exécutable. Pour le rendre exécutable, exécutez :

chmod +x /home/user/scripts/someScript

51voto

naisanza Points 789

Si votre script doit accéder à des ressources dans le même dossier que celui à partir duquel il est exécuté, et que vous l'avez spécifié comme des chemins relatifs, alors votre script se cassera.

J'ajoute toujours un cd $(dirname $0) à la tête de mon script pour que le dossier contenant le script soit le dossier racine.

9voto

Bruno Pereira Points 70510

Retirer le .

Si vous rendez le scrip exécutable avec chmod 755 <nameofscript> pour l'exécuter, il suffit de taper le chemin du script.

Quand vous voyez ./script étant utilisé il indique au Shell que le Shell est situé dans le même répertoire que celui où vous l'exécutez. Pour utiliser le chemin complet, vous tapez sh /home/user/scripts/someScript .

4voto

eleKai Points 51

J'ai essayé de nombreuses façons et cela me convient bien :

(cd ~/user/scripts/; ./someScript)

Je reçois de l'aide de 本答 .

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X