Quelle est la différence entre "source" et "."

135

Quelle est la différence entre exécuter un script (par exemple / some / script) avec source /some/script et . /some/script dans Bash?

    
posée binW 09.02.2011 - 18:18
la source

2 réponses

122

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 .

    
réponse donnée user8290 09.02.2011 - 18:26
la source
41

. 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.

    
réponse donnée jjg 09.02.2011 - 21:42
la source

Lire d'autres questions sur les étiquettes