Réponses:
sourceet .sont synonymes dans Bash .
Si vous souhaitez vérifier que les commandes sont simplement des synonymes et rien de plus, consultez le code source , par exemple pour la version 4.3, et examinez le fichier builtins/source.def. Vous lirez que les deux commandes intégrées, sourceet ., utilisez la même fonction: source_builtin.
.est la commande source traditionnelle, héritée de l'ancien shell. sourceest juste une bash intégrée qui fait exactement la même chose ., probablement parce qu’elle est plus lisible (une .seule peut être difficile à repérer avec une petite police). Vous verrez help sourceet help .montre les mêmes informations.
man bashpuis recherchez sourcevous verrez que source filename [arguments]c'est un synonyme de . filename [arguments].
.est synonyme de sourcebash, mais pas de POSIX sh, vous devez donc l'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 sourcesans 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.
#!/bin/shvous ne devriez jamais supposer que le shell ne prend en charge que des fonctionnalités POSIX. pubs.opengroup.org/onlinepubs/9699919799/utilities/…