Présentation
Dans les systèmes Linux, source
est une commande shell intégrée qui lit et exécute le contenu du fichier dans le shell actuel. Ces fichiers contiennent généralement une liste de commandes livrées à l'interpréteur TCL pour être lues et exécutées.
Ce didacticiel explique comment fonctionne la commande source et quand l'utiliser.
Prérequis
- Un système exécutant une distribution Linux (découvrez comment installer Ubuntu 20.04, comment installer CentOS 7 ou comment installer Arch Linux)
- Un compte avec des privilèges sudo
- Accès à la fenêtre du terminal/ligne de commande
Syntaxe de la commande source
La source commande utilise la syntaxe suivante :
source [filename] [arguments]
Où :
[filename]
:Le nom ou le chemin d'accès au fichier que vous souhaitez que la commande source exécute.[arguments]
:Tous les arguments que vous fournissez deviennent des paramètres positionnels lorsque le fichier est exécuté.
Le caractère point (point) peut être utilisé à la place du source
commande, résultant en la même sortie :
. [filename] [arguments]
Exemples de commandes source Linux
Voici quelques façons d'utiliser la source
commande :
Passer les arguments
Créez un fichier texte appelé example.txt dans la Accueil répertoire avec le contenu suivant :
pwd
date
time
Utilisez la source
commande pour passer le contenu de ce fichier en argument :
source example.txt
La sortie montre que la source
la commande se déplace ligne par ligne, exécutant toutes les commandes répertoriées dans example.txt .
Pour un exemple plus complexe, modifiez le contenu de example.txt à :
echo "The current directory is:"
pwd
echo "Today's date is:"
date
echo "The time is:"
time
Déplacez le fichier vers Home/source_command/example . Avec le source
commande, passez le contenu du fichier en argument en utilisant le chemin complet du fichier :
source source_command/example/example.txt
Lire le fichier de configuration
La source
La commande vous permet également de lire des variables à partir d'un fichier. Commencez par créer un exemple de fichier de configuration example_config.sh dans la Accueil répertoire et en ajoutant le contenu suivant :
VAR1="a"
VAR2="b"
VAR3="c"
Créez un script bash appelé example_bash.sh et ajoutez ce qui suit :
#!/usr/bin/env bash
source example_config.sh
echo "VAR1 is $VAR1"
echo "VAR2 is $VAR2"
echo "VAR3 is $VAR3"
La source
la commande autorise example_bash.sh pour lire les variables VAR1
, VAR2
, et VAR3
vous avez défini dans example_config.sh .
Exécutez example_bash.sh script utilisant le source
commande :
source example_bash.sh
Fonctions sources
Si vous avez des fonctions que vous utilisez dans plusieurs scripts différents, vous pouvez les enregistrer dans des fichiers séparés et utiliser le source
commande pour s'y référer lors de l'écriture de scripts.
Par exemple, commencez par créer une fonction check_root.sh qui vérifie si l'utilisateur exécutant le script est un utilisateur root :
check_root() {
if [[ $EUID -ne 0 ]]; then
echo "You must run this script as root"
exit 1
fi
}
Créez un script appelé example_script.sh et utilisez le source
commande pour insérer le check_root.sh fonction :
#!/usr/bin/env bash
source check_root.sh
check_root
echo "This is the root user"
L'exécution de ce script en tant qu'utilisateur non root produit "You must run this script as root"
en sortie et quitte le script :
bash example_script.sh
L'exécution du script en tant qu'utilisateur root affiche "This is the root user"
en sortie :
sudo bash example_script.sh
Actualiser l'environnement Shell actuel
Pour cet exemple, nous créons une commande d'alias ll
:
alias ll = 'ls -l'
Cette commande répertorie les fichiers du répertoire courant en utilisant le format étendu :
Cependant, cette commande ne fonctionne que dans la session shell en cours. Pour le rendre permanent, ouvrez le bashrc fichier avec :
sudo nano ~/.bashrc
Sous #some more ls aliases
section, ajoutez ce qui suit :
alias ll = 'ls -l'
Actualiser l'environnement shell actuel avec le source
commande :
source ~/.bashrc