Déclaration de variables Linux

LinuxLinuxBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce laboratoire (lab), vous allez apprendre à utiliser les variables dans les scripts shell Linux, qui sont essentielles pour stocker et manipuler des données dans vos scripts. Les variables vous permettent de stocker temporairement des informations pendant l'exécution du script et de réutiliser ces informations tout au long de votre code.

Comprendre comment déclarer et utiliser des variables est une compétence fondamentale pour écrire des scripts shell Linux. Cette connaissance vous aidera à automatiser des tâches, à gérer des configurations et à créer des scripts plus dynamiques pour diverses applications.

À la fin de ce laboratoire (lab), vous comprendrez comment créer des variables simples, des variables entières et des tableaux (arrays) dans des scripts bash, qui sont les éléments de base pour des techniques de script shell plus avancées.

Ceci est un Guided Lab, qui fournit des instructions étape par étape pour vous aider à apprendre et à pratiquer. Suivez attentivement les instructions pour compléter chaque étape et acquérir une expérience pratique. Les données historiques montrent que c'est un laboratoire de niveau débutant avec un taux de réussite de 96%. Il a reçu un taux d'avis positifs de 100% de la part des apprenants.

Déclaration de variables de base

Dans cette étape, vous allez apprendre à déclarer et utiliser une variable de base dans un script bash. Les variables dans les scripts shell Linux vous permettent de stocker temporairement des données et de les référencer plus tard dans votre script.

Tout d'abord, créons un répertoire pour notre projet et naviguons jusqu'à celui-ci :

mkdir -p ~/project
cd ~/project

Maintenant, créons un script appelé variables.sh en utilisant l'éditeur de texte nano :

nano ~/project/variables.sh

À l'intérieur de l'éditeur, tapez le contenu suivant :

#!/bin/bash

## Déclaration d'une variable de base
BALLOON_COLOR="red"

## Affichage de la valeur de la variable
echo "The balloon color is: $BALLOON_COLOR"

Dans ce script, nous avons déclaré une variable nommée BALLOON_COLOR et lui avons assigné la valeur "red". La commande echo affiche ensuite la valeur de cette variable.

Pour enregistrer le fichier dans nano, appuyez sur Ctrl+O, puis appuyez sur Entrée pour confirmer. Pour quitter nano, appuyez sur Ctrl+X.

Maintenant, rendons le script exécutable :

chmod +x ~/project/variables.sh

Cette commande accorde au fichier la permission d'exécution, vous permettant de l'exécuter comme un programme.

Enfin, exécutez votre script :

./variables.sh

Vous devriez voir la sortie suivante :

The balloon color is: red

Cela montre que votre variable a été correctement déclarée et que sa valeur peut être accédée en utilisant le symbole $ avant le nom de la variable.

Déclaration de variables entières

Dans cette étape, vous allez apprendre à déclarer et utiliser des variables entières dans des scripts bash. Le drapeau -i indique à bash que la variable doit être traitée comme un entier, ce qui peut être utile pour les opérations numériques.

Ouvrez à nouveau le script variables.sh pour le modifier :

nano ~/project/variables.sh

Modifiez le script pour inclure une variable entière :

#!/bin/bash

## Déclaration d'une variable de chaîne de caractères de base
BALLOON_COLOR="red"

## Déclaration d'une variable entière
declare -i BALLOON_SIZE=10

## Affichage des deux variables
echo "The balloon color is: $BALLOON_COLOR"
echo "The balloon size is: $BALLOON_SIZE inches"

## Effectuation d'opérations arithmétiques avec la variable entière
declare -i DOUBLE_SIZE=BALLOON_SIZE*2
echo "Double the size would be: $DOUBLE_SIZE inches"

Dans ce script mis à jour :

  1. Nous avons conservé notre variable de chaîne de caractères d'origine BALLOON_COLOR
  2. Nous avons ajouté une nouvelle variable entière BALLOON_SIZE en utilisant la syntaxe declare -i
  3. Nous avons démontré comment effectuer des opérations arithmétiques avec des variables entières

Enregistrez le fichier avec Ctrl+O puis Entrée, puis quittez nano avec Ctrl+X.

Maintenant, exécutez le script à nouveau :

./variables.sh

Vous devriez voir la sortie suivante :

The balloon color is: red
The balloon size is: 10 inches
Double the size would be: 20 inches

La déclaration -i permet à bash de reconnaître que la variable doit être traitée comme un entier, rendant les opérations arithmétiques possibles. Cela est particulièrement utile pour les compteurs, les calculs et le traitement numérique dans vos scripts.

Travailler avec des variables de tableau (array)

Dans cette étape, vous allez apprendre à déclarer et utiliser des variables de tableau (array). Les tableaux vous permettent de stocker plusieurs valeurs sous un seul nom de variable, ce qui est utile lorsqu'il s'agit de gérer des collections de données liées.

Modifions à nouveau notre script :

nano ~/project/variables.sh

Mettez à jour le script pour inclure une variable de tableau :

#!/bin/bash

## Déclaration d'une variable de chaîne de caractères de base
BALLOON_COLOR="red"

## Déclaration d'une variable entière
declare -i BALLOON_SIZE=10

## Déclaration d'une variable de tableau
declare -a BALLOON_COLORS=("red" "green" "blue" "purple" "yellow")

## Affichage des variables individuelles
echo "The balloon color is: $BALLOON_COLOR"
echo "The balloon size is: $BALLOON_SIZE inches"

## Affichage de tous les éléments du tableau
echo "Available balloon colors are: ${BALLOON_COLORS[*]}"

## Affichage d'éléments spécifiques du tableau
echo "The first color is: ${BALLOON_COLORS[0]}"
echo "The third color is: ${BALLOON_COLORS[2]}"

## Nombre d'éléments du tableau
echo "Number of available colors: ${#BALLOON_COLORS[@]}"

Dans ce script mis à jour :

  1. Nous avons conservé nos variables existantes
  2. Nous avons ajouté une variable de tableau BALLOON_COLORS en utilisant la syntaxe declare -a
  3. Nous avons montré différentes façons d'accéder aux éléments du tableau :
    • ${BALLOON_COLORS[*]} affiche tous les éléments
    • ${BALLOON_COLORS[0]} accède au premier élément (les tableaux en bash sont indexés à partir de zéro)
    • ${#BALLOON_COLORS[@]} donne le nombre d'éléments dans le tableau

Enregistrez le fichier avec Ctrl+O puis Entrée, puis quittez nano avec Ctrl+X.

Maintenant, exécutez le script à nouveau :

./variables.sh

Vous devriez voir la sortie suivante :

The balloon color is: red
The balloon size is: 10 inches
Available balloon colors are: red green blue purple yellow
The first color is: red
The third color is: blue
Number of available colors: 5

Les tableaux sont puissants lorsque vous avez besoin de gérer des collections de données liées. Ils vous permettent d'organiser plusieurs valeurs et d'y accéder individuellement ou en groupe. Cela est particulièrement utile pour gérer des listes d'éléments, comme des noms de fichiers, des informations utilisateur ou des options de configuration.

Manipulation et expansion de variables

Dans cette étape, vous allez apprendre à manipuler et à développer des variables de différentes manières. Ces techniques vous permettent de modifier les valeurs des variables sans créer de nouvelles variables, ce qui est utile pour le traitement de texte et la transformation de données.

Modifions à nouveau notre script :

nano ~/project/variables.sh

Mettez à jour le script pour démontrer la manipulation de variables :

#!/bin/bash

## Déclaration de variables de base
NAME="linux"
MESSAGE="Hello, world!"
FILE_PATH="/home/user/documents/report.txt"

echo "Original values:"
echo "NAME = $NAME"
echo "MESSAGE = $MESSAGE"
echo "FILE_PATH = $FILE_PATH"

echo -e "\nVariable manipulation examples:"

## Convertir en majuscules
echo "NAME in uppercase: ${NAME^^}"

## Convertir en minuscules
UPPER_NAME="LINUX"
echo "UPPER_NAME in lowercase: ${UPPER_NAME,,}"

## Obtenir la longueur de la chaîne
echo "Length of MESSAGE: ${#MESSAGE}"

## Extraire une sous - chaîne (à partir de la position 7, 5 caractères)
echo "Substring of MESSAGE: ${MESSAGE:7:5}"

## Remplacer une partie de la chaîne
echo "Replace 'world' with 'Linux': ${MESSAGE/world/Linux}"

## Extraire le nom de fichier à partir du chemin
echo "Filename from path: ${FILE_PATH##*/}"

## Extraire le répertoire à partir du chemin
echo "Directory from path: ${FILE_PATH%/*}"

## Valeur par défaut si la variable n'est pas définie
UNSET_VAR=""
echo "Default value example: ${UNSET_VAR:-default value}"

Ce script démontre plusieurs méthodes pour manipuler des variables :

  1. ${NAME^^} - Convertir en majuscules
  2. ${UPPER_NAME,,} - Convertir en minuscules
  3. ${#MESSAGE} - Obtenir la longueur de la chaîne
  4. ${MESSAGE:7:5} - Extraire une sous - chaîne (position et longueur)
  5. ${MESSAGE/world/Linux} - Remplacer une partie de la chaîne
  6. ${FILE_PATH##*/} - Supprimer la correspondance la plus longue depuis le début (extraire le nom de fichier)
  7. ${FILE_PATH%/*} - Supprimer la correspondance la plus courte depuis la fin (extraire le répertoire)
  8. ${UNSET_VAR:-default value} - Utiliser la valeur par défaut si la variable n'est pas définie

Enregistrez le fichier avec Ctrl + O puis Entrée, puis quittez nano avec Ctrl + X.

Maintenant, exécutez le script :

./variables.sh

Vous devriez voir une sortie similaire à :

Original values:
NAME = linux
MESSAGE = Hello, world!
FILE_PATH = /home/user/documents/report.txt

Variable manipulation examples:
NAME in uppercase: LINUX
UPPER_NAME in lowercase: linux
Length of MESSAGE: 13
Substring of MESSAGE: world
Replace 'world' with 'Linux': Hello, Linux!
Filename from path: report.txt
Directory from path: /home/user/documents
Default value example: default value

Ces techniques de manipulation de variables sont extrêmement utiles pour le traitement de données textuelles, l'extraction d'informations à partir de chaînes de caractères et la gestion des valeurs par défaut dans vos scripts.

Variables d'environnement et portée des variables

Dans cette étape finale, vous allez apprendre à propos des variables d'environnement, de la portée des variables et de la manière d'exporter des variables pour les rendre disponibles pour d'autres processus.

Créez un nouveau script appelé environment.sh :

nano ~/project/environment.sh

Ajoutez le contenu suivant :

#!/bin/bash

## Affichage de quelques variables d'environnement courantes
echo "USER: $USER"
echo "HOME: $HOME"
echo "PATH: $PATH"
echo "PWD: $PWD"
echo "SHELL: $SHELL"

## Création d'une variable locale
LOCAL_VAR="This is a local variable"
echo "LOCAL_VAR: $LOCAL_VAR"

## Exportation d'une variable pour la rendre disponible pour les processus enfants
export EXPORTED_VAR="This variable is exported"
echo "EXPORTED_VAR: $EXPORTED_VAR"

## Démonstration du fonctionnement des variables dans les sous - shells
echo -e "\nVariable behavior in subshell:"
(
  echo "Inside subshell:"
  echo "  LOCAL_VAR: $LOCAL_VAR"
  echo "  EXPORTED_VAR: $EXPORTED_VAR"
  echo "  Creating subshell-only variable"
  SUBSHELL_VAR="This variable only exists in the subshell"
  echo "  SUBSHELL_VAR: $SUBSHELL_VAR"
)

echo -e "\nAfter subshell:"
echo "LOCAL_VAR: $LOCAL_VAR"
echo "EXPORTED_VAR: $EXPORTED_VAR"
echo "SUBSHELL_VAR: $SUBSHELL_VAR" ## This will be empty

## Création d'un script pour tester le comportement de l'exportation
echo -e "\nCreating child script to test variable export..."
cat > ~/project/child_script.sh << 'EOF'
#!/bin/bash
echo "In child script:"
echo "EXPORTED_VAR: $EXPORTED_VAR"
echo "LOCAL_VAR: $LOCAL_VAR"
EOF

chmod +x ~/project/child_script.sh

## Exécution du script enfant
echo -e "\nRunning child script:"
./child_script.sh

Ce script démontre :

  1. Les variables d'environnement courantes (USER, HOME, PATH, etc.)
  2. La différence entre les variables locales et les variables exportées
  3. Le comportement des variables dans les sous - shells (les parenthèses créent un sous - shell)
  4. La manière dont les variables exportées sont héritées par les processus enfants

Enregistrez le fichier avec Ctrl + O puis Entrée, puis quittez nano avec Ctrl + X.

Rendez le script exécutable :

chmod +x ~/project/environment.sh

Maintenant, exécutez le script :

./environment.sh

La sortie vous montrera comment les variables se comportent dans différents contextes :

  • Les variables d'environnement sont prédéfinies par le système
  • Les variables locales existent uniquement dans le script actuel
  • Les variables exportées sont transmises aux processus enfants
  • Les variables créées dans les sous - shells ne sont pas disponibles dans le shell parent

Comprendre la portée des variables est crucial lorsque vous écrivez des scripts complexes qui lancent des processus enfants ou incluent d'autres scripts. Cela vous aide à gérer le flux de données entre différentes parties de votre système.

Résumé

Dans ce laboratoire (lab), vous avez appris les bases de la déclaration et de la manipulation de variables dans les scripts shell Linux. Vous avez exploré :

  • La déclaration et l'utilisation de variables de base
  • Les variables entières et les opérations arithmétiques
  • Les variables tableau (array) pour stocker des collections de données
  • Les techniques de manipulation de variables pour le traitement de texte
  • Les variables d'environnement et la portée des variables

Ces compétences constituent la base de la programmation shell et sont essentielles pour automatiser des tâches dans les environnements Linux. Les variables vous permettent de créer des scripts plus dynamiques et flexibles en stockant et en traitant des données pendant l'exécution.

Vous pouvez maintenant utiliser ces techniques pour :

  • Stocker les paramètres de configuration dans vos scripts
  • Traiter les entrées utilisateur et le contenu des fichiers
  • Manipuler les données textuelles et les chemins de fichiers
  • Partager des données entre différents scripts et processus

Au fur et à mesure de votre progression dans la programmation shell Linux, vous constaterez que maîtriser l'utilisation des variables ouvre de nombreuses possibilités pour créer des outils d'automatisation puissants et efficaces.