Lecture d'entrées sécurisées et de plusieurs variables
Dans cette étape finale, vous allez apprendre deux techniques plus avancées :
-
Lire des entrées sécurisées (comme des mots de passe) sans afficher les caractères à l'écran
-
Lire plusieurs variables avec une seule commande read
-
Ouvrez votre script pour le modifier :
nano input_reader.sh
-
Remplacez le contenu existant par le code suivant :
#!/bin/bash
## Script démontrant la lecture d'entrées sécurisées et de plusieurs variables
## Lecture d'entrée sécurisée avec le flag -s (pas d'affichage)
echo "Exemple d'entrée sécurisée :"
read -p "Nom d'utilisateur : " username
read -s -p "Mot de passe : " password
echo ## Ajoute un saut de ligne après l'entrée du mot de passe
echo "Nom d'utilisateur entré : $username"
echo "Longueur du mot de passe : ${#password} caractères"
## Lecture de plusieurs variables en une seule fois
echo -e "\nExemple de plusieurs variables :"
read -p "Entrez le prénom, le nom de famille et l'âge (séparés par des espaces) : " first_name last_name age
echo "Prénom : $first_name"
echo "Nom de famille : $last_name"
echo "Âge : $age"
## Lecture avec un délimiteur personnalisé
echo -e "\nExemple de délimiteur personnalisé :"
read -p "Entrez des valeurs séparées par des virgules : " -d "," value1
echo ## Ajoute un saut de ligne
echo "Première valeur avant la virgule : $value1"
echo -e "\nMerci d'avoir terminé ce lab sur la lecture d'entrées Linux !"
Ce script :
- Utilise le flag
-s
avec la commande read
pour masquer l'entrée (utile pour les mots de passe ou autres informations sensibles)
- Montre comment lire plusieurs variables à partir d'une seule ligne d'entrée en fournissant plusieurs noms de variables à la commande
read
- Démontre le flag
-d
pour spécifier un délimiteur personnalisé (au lieu du caractère de saut de ligne par défaut)
-
Enregistrez le fichier en appuyant sur Ctrl+O
, puis appuyez sur Entrée
pour confirmer le nom du fichier, et quittez nano en appuyant sur Ctrl+X
.
-
Exécutez le script pour le tester :
./input_reader.sh
Exemple de sortie (vos entrées seront différentes) :
Exemple d'entrée sécurisée :
Nom d'utilisateur : john_doe
Mot de passe :
Nom d'utilisateur entré : john_doe
Longueur du mot de passe : 8 caractères
Exemple de plusieurs variables :
Entrez le prénom, le nom de famille et l'âge (séparés par des espaces) : John Doe 30
Prénom : John
Nom de famille : Doe
Âge : 30
Exemple de délimiteur personnalisé :
Entrez des valeurs séparées par des virgules : test,
Première valeur avant la virgule : test
Merci d'avoir terminé ce lab sur la lecture d'entrées Linux !
La sécurité est importante lorsqu'il s'agit de gérer des informations sensibles comme les mots de passe. Le flag -s
garantit que les caractères tapés ne sont pas affichés à l'écran. Notez que dans l'exemple du mot de passe, le script n'affiche que la longueur du mot de passe pour vérification, pas le mot de passe réel.
La lecture de plusieurs variables en une seule fois peut rendre vos scripts plus efficaces et plus conviviaux. Lorsque la commande read
reçoit plusieurs noms de variables, elle divise l'entrée en fonction de la variable d'environnement IFS (Internal Field Separator), qui est par défaut l'espace blanc (espaces, tabulations et sauts de ligne).
Le flag -d
vous permet de changer le délimiteur qui indique la fin de l'entrée. Par défaut, read
s'arrête à un saut de ligne (lorsque vous appuyez sur Entrée), mais vous pouvez le changer pour n'importe quel caractère, comme une virgule dans l'exemple.