3 votes

./ vs exécution normale

C'est probablement une question plus pour les systèmes unix mais comme je l'ai sur mon Mac Pro, j'espère trouver une réponse ici :

Lorsque je navigue sur /Library/Java/JavaVirtualMachines/jdk1.7.0_11.jdk/Contents/Home/db/bin

avec un cd, je ne peux pas exécuter la commande startNetworkServer présente dans bin, mais je peux l'exécuter par l'intermédiaire de ./startNetworkServer .

Toutefois, à partir de ~

MacCris:~ cris$ /Library/Java/JavaVirtualMachines/jdk1.7.0_11.jdk/Contents/Home/db/bin/startNetworkServer

il fonctionne sans ./

Une idée de la raison (liée aux droits ?)

Merci

7voto

yoliho Points 340

Cela est dû au comportement de votre shell qui s'exécute dans le Terminal.app. Il s'agit probablement du bash coquille

Lorsque vous demandez au shell d'exécuter une commande, si vous fournissez un chemin absolu (c'est-à-dire commençant par / comme le fait votre deuxième), il essaiera d'exécuter ce programme à ce chemin. Si vous fournissez un chemin relatif (c'est-à-dire qui ne commence pas par / ), il essaiera de créer un chemin absolu en faisant précéder les répertoires qui sont dans votre variable d'environnement PATH de ce que vous avez tapé. Comme votre répertoire courant ou . n'est pas dans votre PATH, il ne peut pas trouver de fichier à exécuter. Si le chemin commence par un . il le repave par le chemin absolu de votre répertoire actuel et obtient ainsi un chemin qui peut être exécuté.

2voto

Jakub Points 253
  • ~ = dossier personnel, rien d'autre.

  • ./something exécutera ce quelque chose (que ce soit script ou binaire)
    Écrire le chemin complet est la même chose que d'exécuter avec ./

  • cd est le répertoire de changement, il sera donc no exécuter

Ce sont toutes des commandes standard de la ligne de commande unix/linux.

Références :
http://linuxcommand.org/learning_the_shell.php http://www.arachnoid.com/linux/shell_programming.html

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X