3 votes

Différence entre filename et . filename dans le terminal MacOS

Je suis novice en matière de MacOS. (J'utilise mac OS high sierra 10.13.6) J'ai installé un logiciel. Ils m'ont dit d'initialiser le logiciel en

. /chemin/setsas.sh

Je n'ai pas pensé à l'espace, alors j'ai couru

chemin/setsas.sh

Il a semblé fonctionner, mais après cela, je n'ai pu exécuter aucune commande du logiciel. J'ai découvert que j'aurais dû exécuter la commande en question, et après cela, tout allait bien. Que signifient donc le . et l'espace ici, et comment expliquer que je n'ai pu exécuter aucune commande au début, même si le fichier semblait fonctionner ? Je sais que . signifie parfois le dossier en cours, mais il ne semble pas que ce soit le cas ici.

3voto

Jason Manuta Points 46

. /path/setsas.sh charge les variables et les fonctions du script dans votre session shell actuelle. C'est la même chose que d'exécuter source /path/setsas.sh . Exécuter path/setsas.sh d'autre part, génère un nouveau processus. Les variables et les fonctions ne seront pas accessibles depuis votre shell actuel. C'est pourquoi les commandes ne fonctionnaient pas pour vous.

-2voto

Mike Robinson Points 164

Lorsque vous "saisissez simplement une commande", OS/X (comme tout Unix/Linux) utilise la commande $PATH pour spécifier les emplacements qui doivent être a cherché pour la trouver - sauf s'il s'agit d'une commande bash/shell intégrée.

Lorsque vous spécifiez ./command c'est une référence explicite à un fichier particulier dans un répertoire particulier - "le répertoire 'courant'". $PATH n'est pas utilisé, et la commande n'est pas considérée comme "intégrée".

De même, ~/command est une référence explicite, utilisant cette fois-ci "~" comme un raccourci vers "mon répertoire personnel". Encore une fois, $PATH n'est pas utilisé.

(Unrelated ...) Le site source La commande shell nécessite une référence spécifique à un fichier, et elle amène l'interpréteur de commandes à lire et à exécuter toutes les commandes de ce fichier. (Par exemple, si vous modifiez votre fichier "bash profile" et que vous voulez l'incorporer sans vous reconnecter, c'est une façon de le faire).

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