J'ai récemment appris que
. ./.a.a
et ./.a.a
c'est pareil.
Cependant, essayer source source .a.a
donne une erreur. IMO, .
étant l'alias de Bash, source
ne devrait pas se comporter différemment, alors qu'est-ce qui me manque?
Bonus, pourquoi est . .
OK alors que source source
non?
. script
et./script
c'est la même chose? Ils ne le sont certainement pas . En outre,.
n'est pas un alias poursource
. C'est l'inverse..
est la norme etsource
est un alias de.
..
commande, mais je veux dire,source
c'est juste une meilleure commande, quand vous voyezsource somefile
dans un script, vous savez immédiatement ce que fait cette déclaration, mais. somefile
non seulement ce n'est pas évident, vous pouvez facilement rater le.
personnagebash: .: .: is a directory
sur. .
est ok besoins à expliquer.. ./.a.a .
être honnête. : -DA quiz en quelque sorte, si vous voulez. :-) La question liée est géniale, merci beaucoup. Ce qui m'a donné cette idée: le fait que je l' avais vu aucune différence dans l' exécution de fichiers de cette façon et le fait que je lu quelque part.
est un alias poursource
. :-)Réponses:
Vous ne pouvez pas simplement remplacer
.
parsource
partout; sifonctionne, vous pouvez remplacer le premier
.
(au moins dans Bash):Le second
.
représente le répertoire courant, vous ne pouvez pas le remplacer parsource
(surtout pas./
avecsource
comme vous l'avez fait).serait OK si vous aviez un fichier appelé
source
dans le répertoire courant, contenant quelque chose de significatif pour votre shell actuel. Je ne vois pas comment ça. .
irait ...De plus,
. ./.a.a
et./.a.a
ne sont pas les mêmes, le second formulaire s'exécute.a.a
dans un shell séparé. Voir Quelle est la différence entre le sourcing ('.' Ou 'source') et l'exécution d'un fichier dans bash? pour plus de détails.la source
source
est un mot clé shell qui est censé être utilisé comme ceci:source
file
oùfile
contient des commandes shell valides. Ces commandes shell seront exécutées dans le shell actuel comme si elles étaient tapées à partir de la ligne de commande. Maintenant,.
file
fait exactement la même chose.Au-delà de cela
.
seul signifie "le répertoire de travail actuel" comme dans./xyz
("xyz
dans ce répertoire") oua/b/./c/./d
(qui est identique àa/b/c/d
).Au-delà,
.
dans un nom de fichier n'a de sens que par convention comme dans.foobar
lequel indique un fichier "caché" (pas vraiment ...) ou comme dansfoobar.pdf
, qui indique un format de fichier par le suffixe (ici.pdf
).Ces différentes significations ne peuvent pas être échangées.
la source
.
n'est en aucun cas dépassé. Contrairement àsource
la manière portable, définie par POSIX , de rechercher un fichier. L'source
alias est spécifique au shell et peut être absent (par exemple dansdash
) ou se comporter différemment de la norme.
.