Réponses:
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 , par exemple pour la version 4.3, et examinez le fichier builtins/source.def
. Vous lirez que les deux commandes intégrées, source
et .
, utilisez la même fonction: source_builtin
.
.
est la commande source traditionnelle, héritée de l'ancien shell. source
est 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 source
et help .
montre les mêmes informations.
man bash
puis recherchez source
vous verrez que source filename [arguments]
c'est un synonyme de . filename [arguments]
.
.
est synonyme de source
bash, 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 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.
#!/bin/sh
vous ne devriez jamais supposer que le shell ne prend en charge que des fonctionnalités POSIX. pubs.opengroup.org/onlinepubs/9699919799/utilities/…