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?
147
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 verrezhelp source
ethelp .
montre les mêmes informations.man bash
puis recherchezsource
vous verrez quesource filename [arguments]
c'est un synonyme de. filename [arguments]
..
est synonyme desource
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 acceptesource
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.
la source
#!/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/…