
Le source
command lit et exécute les commandes du fichier spécifié comme argument dans l'environnement shell actuel. Il est utile de charger des fonctions, des variables et des fichiers de configuration dans des scripts shell.
source
est un shell intégré à Bash et à d'autres shells populaires utilisés dans les systèmes d'exploitation Linux et UNIX. Son comportement peut être légèrement différent d'un shell à l'autre.
Syntaxe de la commande source #
La syntaxe du source
commande est la suivante :
source FILENAME [ARGUMENTS]
. FILENAME [ARGUMENTS]
source
et.
(un point) sont la même commande.- Si le
FILENAME
n'est pas un chemin complet vers un fichier, la commande recherchera le fichier dans les répertoires spécifiés dans le$PATH
variable environnementale. Si le fichier n'est pas trouvé dans le$PATH
, la commande recherchera le fichier dans le répertoire courant. - Le cas échéant,
ARGUMENTS
sont donnés, ils deviendront des paramètres de position pour leFILENAME
. - Si le
FILENAME
existe, lesource
le code de sortie de la commande est0
, sinon, si le fichier n'est pas trouvé, il retournera1
.
Exemples de commande source #
Dans cette section, nous examinerons quelques exemples de base sur la façon d'utiliser le source
commande.
Fonctions de sourcing #
Si vous avez des scripts shell utilisant les mêmes fonctions, vous pouvez les extraire dans un fichier séparé, puis sourcer ce fichier dans vos scripts.
Dans cet exemple, nous allons créer un fichier qui inclut une fonction bash qui vérifie si l'utilisateur qui exécute le script est la racine, et si ce n'est pas le cas, il affiche un message et quitte le script.
functions.shcheck_root () {
if [[ $EUID -ne 0 ]]; then
echo "This script must be run as root"
exit 1
fi
}
Maintenant, dans chaque script qui doit être exécuté uniquement par l'utilisateur root, sourcez simplement le functions.sh
fichier et appelez la fonction :
#!/usr/bin/env bash
source functions.sh
check_root
echo "I am root"
Si vous exécutez le script ci-dessus en tant qu'utilisateur non root, il affichera "Ce script doit être exécuté en tant que root" et quittera.
L'avantage de cette approche est que vos scripts seront plus petits et plus lisibles, vous pouvez réutiliser le même fichier de fonction chaque fois que nécessaire, et au cas où vous auriez besoin de modifier une fonction, vous n'éditerez qu'un seul fichier.
Fichier de configuration bash #
Avec le source
commande, vous pouvez également lire des variables à partir d'un fichier. Les variables doivent être définies à l'aide de la syntaxe Bash, VARIABLE=VALUE
.
Créons un fichier de configuration de test :
config.shVAR1="foo"
VAR2="bar"
Dans votre script bash, utilisez le source
commande pour lire le fichier de configuration :
#!/usr/bin/env bash
source config.sh
echo "VAR1 is $VAR1"
echo "VAR2 is $VAR2"
Si vous exécutez le script, la sortie ressemblera à ceci :
VAR1 is foo
VAR2 is bar
Conclusion #
Dans ce guide, vous avez appris à utiliser le source
commande intégrée dans vos scripts shell.
Si vous avez des questions ou des commentaires, n'hésitez pas à laisser un commentaire.