GNU/Linux >> Tutoriels Linux >  >> Linux

Commande de source bash

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 le FILENAME .
  • Si le FILENAME existe, le source le code de sortie de la commande est 0 , sinon, si le fichier n'est pas trouvé, il retournera 1 .

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.sh
check_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.sh
VAR1="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.


Linux
  1. Explication de la commande Bash Trap

  2. Commande d'attente bash

  3. Utilisation de la commande Linux Basename dans les scripts Bash

  4. commande d'exportation bash

  5. source conda désactiver :bash :désactiver :aucun fichier ou répertoire de ce type

Commande Gzip sous Linux

Commande Gunzip sous Linux

Commande Stat sous Linux

Commande d'historique sous Linux (historique de bash)

Commande Bash printf

Script bash (III)