Quelle est la différence entre exécuter un script (par exemple / some / script) avec source /some/script
et . /some/script
dans Bash?
source
et .
sont synonymes dans Bash .
Si vous souhaitez vérifier que les commandes sont simplement des synonymes et rien de plus, consultez le code source , pour la version 4.3, et examinez le fichier builtins/source.def
. Vous allez lire que les deux commandes intégrées, source
et .
, utilisez la même fonction: source_builtin
.
.
est synonyme de source
en bash, mais pas de 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é as / bin / sh, mais accepte source
sans se plaindre.
Ce comportement m’a mordu, les scripts testés avec bash comme / bin / sh échouent lorsqu’ils sont exécutés sous ash, par exemple.