La commande source est une commande shell intégrée utilisée pour lire et exécuter des commandes à partir d'un fichier à l'intérieur de la session shell en cours. La commande source est couramment utilisée pour conserver/modifier la variable d'environnement dans le shell actuel. En bref, le sourcing d'un script exécutera des commandes d'exécution dans le shell actuel .
La commande source est utile pour :
- Actualiser votre environnement shell actuel
- Pour exécuter un script shell dans le contexte de l'environnement actuel
- Pour importer une fonction shell dans votre script
- Lire des variables à partir d'un script shell
Syntaxe pour la commande source
La syntaxe de cette commande shell intégrée est lisible par l'homme. Il prend un fichier et si des arguments sont fournis, ils servent de paramètres de position pour le script transmis.
source FILENAME [ARGUMENTS]
Le . (point) peut également être utilisé comme alternative à la commande source.
. FILENAME [ARGUMENTS]
Comment utiliser la commande source
Ici, j'explique quelques exemples pratiques où vous pouvez appliquer la commande source.
1. Actualisez votre environnement shell actuel
En tant qu'utilisateur, vous pouvez définir un alias dans votre environnement shell actuel. Pour en définir un pour ls -l
saisissez :
alias ll = 'ls -l'
Pour l'utiliser tapez :
ll
Bien que ce qui précède répertorie les fichiers du répertoire courant au format long, cela ne fonctionne que pour la session shell en cours. Pour apporter les modifications de manière permanente, ouvrez le fichier ~/.bashrc et ajoutez :
alias ll = 'ls -l'
Pour actualiser le shell actuel type d'environnement :
source ~/.bashrc
2. Exécute un script shell dans le contexte de l'environnement shell actuel
Un script shell n'a pas connaissance des variables que vous définissez en tant qu'utilisateur dans votre environnement shell actuel. La commande source peut être utilisée pour exécuter votre script shell dans le contexte de la session en cours.
Pour définir un type de variable temporaire :
WEBSITE = example.com
Pour créer un type de script personnalisé :
#!/bin/bash echo $WEBSITE
Enregistrez le fichier. Pour l'exécuter dans le contexte de la session shell en cours, tapez :
source ./myscript.sh
La sortie est illustrée ci-dessous.
example.com
3. Importer une fonction shell
Pour définir un type de script shell personnalisé :
!#/bin/bash foo() { echo "test" }
Enregistrez ce qui précède sous script.sh.
Pour importer la fonction du script ci-dessus dans votre session shell actuelle, tapez :
source script.sh
Pour utiliser le foo
type de fonction :
foo
La sortie est illustrée ci-dessous.
test
4. Lire des variables à partir d'un script shell
Pour créer un script shell avec des variables, tapez :
#!/bin/bash a=1 b=2 c=3
Pour lire les variables dans un autre type de script shell :
#!/bin/bash source abovescript.sh echo $a, $b, $c
Le résultat devrait être :
1, 2, 3
5. Lire et exécuter des commandes
La commande source peut lire et exécuter des commandes à partir d'un fichier. Prenons un fichier texte avec un ensemble de commandes.
Par exemple, le fichier command.txt a le contenu suivant :
pwd
date
La sortie de la source
$ source firstexample.txt /home/developer Fri Feb 25 11:10:11:09 GMT 2021
6. Passer des arguments aux fonctions
Cette section décrit comment passer le paramètre à la fonction et la même fonction que nous pouvons réutiliser via la commande source.
fonctions.sh!/usr /bin/bash var1=$1 var2=$2execute.sh
!/usr/bin/bash source functions.sh 10 AA echo “var1 = $var1” echo “var2 = $var2”Sortie.sh
var1 = 10 var2 = AA
Conclusion
La commande source a évalué le script dans le shell actuel alors que la commande exec s'exécute dans un nouveau shell.
Grâce à cet article, vous avez appris quatre exemples pratiques de la commande source. Bien qu'ils soient tous utiles, le plus important pour vous en tant qu'utilisateur est le premier.