GNU/Linux >> Tutoriels Linux >  >> Linux

Comment utiliser la commande de lecture Bash

Présentation

Le Bash read La commande est un utilitaire intégré qui lit le texte à partir de l'entrée standard. L'outil offre de nombreuses fonctionnalités pour lire les entrées de l'utilisateur, aidant à rendre les scripts Bash interactifs.

Ce guide explique comment le Bash read La commande fonctionne à travers divers exemples et cas d'utilisation.

Prérequis

  • Accès à la ligne de commande/au terminal.
  • Principes de base de l'utilisation des variables d'environnement

Syntaxe de lecture bash

La syntaxe pour le Bash read la commande est :

read <options> <arguments>

Le read La commande prend l'entrée de l'utilisateur et divise la chaîne en champs, affectant chaque nouveau mot à un argument. S'il y a moins de variables que de mots, read stocke les termes restants dans la variable finale.

La spécification des noms d'arguments est facultative. La commande stocke l'entrée d'un utilisateur dans le $REPLY variable par défaut.

Options de lecture bash

Le Bash read La commande est livrée avec de nombreuses options pour contrôler l'entrée de l'utilisateur. Certaines options ne nécessitent pas de paramètres supplémentaires, tandis que d'autres ont des paramètres obligatoires.

Le tableau ci-dessous montre toutes les options de commande possibles et leur description.

Option Description
-a <array> Assigne la séquence de mots fournie à une variable nommée <array> .
-d <delimiter> Lit une ligne jusqu'au <delimiter> fourni au lieu d'une nouvelle ligne.
-e Démarre une session shell interactive pour obtenir la ligne à lire.
-i <prefix> Ajoute le texte initial avant de lire une ligne comme préfixe.
-n <number> Retourne après avoir lu le nombre de caractères spécifié tout en respectant le délimiteur pour terminer plus tôt.
-N <number> Retourne après avoir lu le nombre de caractères spécifié, en ignorant le délimiteur.
-p <prompt> Envoie la chaîne d'invite avant de lire l'entrée de l'utilisateur.
-r Désactivez les barres obliques inverses pour échapper les caractères.
-s Ne fait pas écho à l'entrée de l'utilisateur.
-t <time> La commande expire après le temps spécifié en secondes.
-u <file descriptor> Lire à partir du descripteur de fichier au lieu de l'entrée standard.

Continuez à lire pour voir comment la commande de lecture fonctionne à travers divers exemples.

Exemples de lecture bash

Le read les fonctions de commande sans arguments ni options. Pour tester la commande, suivez les étapes ci-dessous :

1. Ouvrez le terminal.

2. Écrivez la commande et appuyez sur Entrée :

read

L'invite attend l'entrée de l'utilisateur.

3. Tapez une phrase et appuyez sur Entrée .

Le terminal revient à son état normal.

4. Récupérez le message avec la commande echo :

echo $REPLY

Le $REPLY la variable stocke le read message de commande.

Vous trouverez ci-dessous des exemples illustrant des cas d'utilisation plus complexes pour le Bash read commande.

Arguments

Enregistrez l'entrée de l'utilisateur dans une variable spécifiée en fournissant un argument :

read input

Récupérez le message avec :

echo $input

Vous pouvez également diviser l'entrée utilisateur en différentes variables en ajoutant plusieurs arguments.

Par exemple :

read var1 var2

L'entrée de l'utilisateur se divise en mots individuels. Récupérez-les avec :

echo $var1
echo $var2

Lorsque l'entrée utilisateur comporte plus de mots qu'il n'y a de variables, les mots supplémentaires sont affectés à la dernière variable fournie :

read var1 var2
foo bar baz
echo $var1
echo $var2

S'il y a moins de mots que de variables, les variables restantes sont vides.

Tuyauterie

La tuyauterie prend la sortie standard d'une commande et l'analyse comme entrée standard pour un autre processus. Utiliser echo et dirigez les informations vers read pour une analyse immédiate. Par exemple :

echo "Hello world!" | (read var1 var2; echo $var1; echo $var2)

Les parenthèses créent un sous-shell avec plusieurs commandes et les variables individuelles s'impriment sur la console.

Héros

Une autre façon de saisir du texte dans le read commande utilise la notation heredoc. Par exemple :

read var1 var2 <<< "Hello world!"
echo $var1
echo $var2

Le read La commande attend un littéral de flux d'entrée et l'identifiant de redirection (<<< ) entre la chaîne ici.

Séparateurs

Le read La commande définit deux types de délimiteurs :

1. Le délimiteur pour le read commande.

Par défaut, appuyez sur Entrée (nouvelle ligne) termine la commande. Ajoutez le -d tag et fournissez un délimiteur différent entre guillemets pour terminer différemment.

Par exemple :

read -d "-"

Au lieu d'une nouvelle ligne, le nouveau délimiteur est un tiret (- ) au lieu d'une nouvelle ligne. La commande se termine lorsqu'elle atteint le délimiteur, quel que soit le nombre d'arguments. La réponse dans $REPLY ou la variable fournie stocke l'entrée de l'utilisateur sans le tiret (- ).

2. Le délimiteur pour diviser les champs.

La variable $IFS (Internal Field Separator) stocke les délimiteurs de mots. La valeur par défaut par laquelle les mots sont séparés est un espace " ". Définissez le $IFS variable à une valeur différente pour contrôler ce comportement.

Par exemple, pour séparer les mots par des tirets, utilisez :

IFS="-"
echo "Hello-world!" | (read var1 var2; echo $var1; echo $var2)

Ajoutez différents séparateurs pour séparer les champs selon différentes valeurs :

IFS="-_"
echo "Hello_world-!" | (read var1 var2 var3; echo $var1; echo $var2; echo $var3)

Le séparateur est long d'un caractère et $IFS prend chaque diviseur indiqué individuellement.

Invite

Utilisez la commande read pour créer des invites interactives. Ajoutez le -p tag et fournissez le texte de l'invite, par exemple :

read -p "Enter your username: " username

Le texte de l'invite s'imprime et nécessite une entrée de l'utilisateur. Le texte est enregistré dans la variable $username .

echo Your username is $username.

Utilisez le -p option dans les scripts Bash pour travailler avec la création d'invites.

Masquer la saisie de l'utilisateur

Le read la commande offre le -s balise pour masquer la saisie d'informations sensibles. Un cas d'utilisation courant consiste à combiner -s avec le -p balise pour créer une invite de mot de passe.

Par exemple :

read -p "Enter your password: "$'\n' -s password

L'entrée de l'utilisateur est invisible. Cependant, l'écho du message affiche le mot de passe :

echo $password

Méfiez-vous de ce comportement lorsque vous utilisez read dans des scripts qui demandent des mots de passe.

Définir la limite de caractères

La commande de lecture offre deux options lors de la limitation du nombre de caractères pour l'entrée utilisateur :

1. Utilisez le -n option et fournissez un nombre pour définir la limite de caractères. Par exemple :

read -n 3

Appuyez sur Entrée après un caractère pour terminer la commande avant d'atteindre la limite de caractères. Sans appuyer sur Entrée , la commande se termine automatiquement après trois caractères.

2. Utilisez le -N option et fournissez un nombre pour définir la limite de caractères tout en ignorant le délimiteur. Par exemple :

read -N 3

Appuyez sur Entrée ne termine pas la commande. Cependant, la frappe compte comme un caractère.

Définir le délai d'expiration

Définissez un délai d'attente pour la read pour limiter le temps de saisie de texte :

read -t 5

La commande se termine automatiquement après le délai imparti.

Tableaux

Au lieu d'utiliser des variables individuelles pour stocker une chaîne, ajoutez le -a option pour enregistrer l'entrée dans un tableau. Par exemple :

read -a array <<< "Hello world!"

Récupérez les éléments du tableau avec :

echo ${array[0]}
echo ${array[1]}

Vous pouvez également utiliser une boucle for pour parcourir le tableau.

Caractères d'échappement et barres obliques inverses

Le read La commande permet de diviser les entrées longues en plusieurs lignes à l'aide de barres obliques inverses. Par exemple :

read password prompt terminal output
Hello \
world\
!

Appuyez sur Entrée après la barre oblique inverse ne termine pas la commande et attend d'autres entrées sur la ligne suivante.

Pour ignorer l'interprétation de la barre oblique inverse, ajoutez le -r choix :

read -r <<< "Hello\world!"; echo $REPLY

Utilisez cette option lors de l'analyse des chemins de fichiers et de tout texte où la barre oblique inverse a une signification.


Linux
  1. Comment utiliser la commande Linux sed

  2. Comment utiliser la commande Linux grep

  3. Comment utiliser la commande history sous Linux

  4. Comment utiliser la commande basename ?

  5. Comment utiliser la commande id sous Linux

Comment utiliser la commande nmap

Comment utiliser la commande fd sur le système Linux

Comment utiliser la commande wget sous Linux ?

Comment utiliser la commande xargs sous Linux ?

Comment utiliser la commande RPM sous Linux

Comment utiliser la commande which sous Linux