Quelle est la différence entre l’exécution d’un script (par exemple,/some/script) avec source /some/script
et . /some/script
dans Bash?
source
et .
sont synonymes dans Bash .
Pour ceux qui voudraient vérifier que les commandes sont simplement synonymes et rien de plus, regardez code source , disons pour la version 4.3, et examinez le fichier builtins/source.def
. Vous lirez que les deux commandes intégrées, source
NAME _ et .
, utilisent la même fonction: source_builtin
.
.
est synonyme de source
dans bash, mais pas dans POSIX sh. Vous devez donc utiliser .
si votre script est exécuté par/bin/sh. Notez que bash prétend fonctionner comme POSIX sh lorsqu’il est appelé/bin/sh, mais accepte source
sans se plaindre.
Ce comportement m'a mordu, les scripts testés avec bash en tant que/bin/sh échouent lorsqu'ils sont exécutés sous ash, par exemple.