source
La commande exécute le script fourni. (l'autorisation d'exécution est non obligatoire ) dans le actuel Shell environnement, alors que ./
exécute la commande fournie exécutable script dans une nouveau Shell.
source
la commande a un synonyme . filename
.
Pour rendre les choses plus claires, jetez un coup d'œil au script suivant, qui définit l'alias.
faire_alias
#! /bin/bash
alias myproject='cd ~/Documents/Projects/2015/NewProject'
Maintenant, nous avons deux choix pour exécuter ce script. Mais avec uniquement une option, l'alias souhaité pour le Shell actuel peut être créé parmi ces deux options.
Option 1 : ./make_alias
Rendre script exécutable en premier.
chmod +x make_alias
Exécuter
./make_alias
Vérifier
alias
Sortie
**nothing**
Oups ! L'alias a disparu avec le nouveau Shell.
Choisissons la deuxième option.
Option 2 : source make_alias
Exécuter
source make_alias
ou
. make_alias
Vérifier
alias
Sortie
alias myproject='cd ~/Documents/Projects/2015/NewProject'
Oui L'alias est défini.
9 votes
Liés : superuser.com/questions/176783/
70 votes
Vous avez oublié
$ type source
source is a shell built-in
3 votes
Mon Shell a retourné ceci
$ whatis source
source (1) - bash built-in commands, see bash(1)
. Aussi,man source
m'emmène auBASH_BUILTINS(1)
pages du manuel. Ceci est sur Fedora, je ne sais pas pourquoi les paquets debian ne sont pas (ou mal) documentés.6 votes
@lesmana, excellent lien. Ce réponse liée est la réponse la plus complète à cette question.
10 votes
Essayez "source d'aide".
0 votes
source --help
est un bon début.0 votes
$ help source Est la commande de documentation que vous recherchez. $ help vous donnera une liste des modules intégrés de bash.