GNU/Linux >> Tutoriels Linux >  >> Linux

5 exemples pratiques de la commande Read sous Linux

Quelle est la commande de lecture sous Linux ?

La commande de lecture sous Linux est un moyen pour les utilisateurs d'interagir avec les entrées prises au clavier, que vous pourriez voir appelées stdin (entrée standard) ou d'autres descriptions similaires.

En d'autres termes, si vous voulez que votre script bash accepte les entrées de l'utilisateur, vous devrez utiliser la commande read.

Je vais écrire quelques scripts bash simples pour vous montrer l'utilisation pratique de la commande read.

Lire des exemples de commandes

La commande read peut être déroutante pour commencer, en particulier pour ceux qui débutent dans les scripts shell. Les scripts que je vais utiliser ici sont très simples à comprendre et devraient être faciles à suivre, surtout si vous vous entraînez avec le didacticiel.

Concepts de programmation de base

Avec presque tous les programmes ou scripts, vous voulez prendre des informations d'un utilisateur (entrée) et dire à l'ordinateur quoi faire avec ces informations (sortie).

Lorsque vous utilisez la lecture, vous communiquez au terminal bash que vous souhaitez capturer l'entrée de l'utilisateur. Par défaut, la commande créera une variable dans laquelle enregistrer cette entrée.

read [options] variable_name

Voyons maintenant quelques exemples de commande de lecture pour comprendre comment vous pouvez l'utiliser dans différentes situations.

1. Lire la commande sans options

Lorsque vous tapez read sans aucune option supplémentaire, vous devrez appuyer sur Entrée pour démarrer la capture. Le système capturera l'entrée jusqu'à ce que vous appuyiez à nouveau sur Entrée.

Par défaut, ces informations seront stockées dans une variable nommée $REPLY .

Pour rendre les choses plus faciles à suivre pour le premier exemple, j'utiliserai le Le symbole s'affichera lorsque vous appuierez sur la touche Entrée.

read ↵
hello world ↵
echo $REPLY ↵
hello world

En savoir plus sur les variables

Comme je l'ai mentionné plus tôt, le $REPLY la variable est intégrée à read , vous n'avez donc pas à le déclarer.

Cela peut convenir si vous n'avez qu'une seule application en tête, mais il est plus que probable que vous souhaitiez utiliser vos propres variables. Lorsque vous déclarez la variable avec read, vous n'avez rien d'autre à faire que de taper le nom de la variable.

Lorsque vous voulez appeler la variable, vous utiliserez un $ devant le nom. Voici un exemple où je crée la variable Linux_Handbook et attribuez-lui la valeur de l'entrée.

Vous pouvez utiliser la commande echo pour vérifier que la commande read a fait son effet :

read Linux_Handbook ↵
for easy to follow Linux tutorials.
echo $Linux_Handbook ↵
for easy to follow Linux tutorials.

Rappel :Les noms de variables sont sensibles à la casse.

2. Option d'invite -p

Si vous écrivez un script et que vous souhaitez capturer les entrées de l'utilisateur, il existe une option de lecture pour créer une invite qui peut simplifier votre code. Le codage est une question d'efficacité, n'est-ce pas ?

Au lieu d'utiliser des lignes supplémentaires et des commandes echo, vous pouvez simplement utiliser le -p indicateur d'option. Le texte que vous tapez entre guillemets s'affichera comme prévu et l'utilisateur n'aura pas besoin d'appuyer sur Entrée pour commencer à capturer l'entrée.

Ainsi, au lieu d'écrire deux lignes de code comme ceci :

echo "What is your desired username? "
read username

Vous pouvez utiliser le -p option avec une commande de lecture comme celle-ci :

read -p "What is your desired username? " username

L'entrée sera enregistrée dans la variable $username.

3. Option "Secret"/Silencieux -s

J'ai écrit un script bash simple pour démontrer le drapeau suivant. Jetez d'abord un coup d'œil à la sortie.

bash secret.sh
What is your desired username? tuxy_boy
Your username will be tuxy_boy.
Please enter the password you would like to use:

You entered Pass123 for your password.
Masking what's entered does not obscure the data in anyway.

Voici le contenu de secret.sh si vous souhaitez le recréer.

#!/bin/bash
read -p "What is your desired username? " username
echo "Your username will be" $username"."
read -s -p "Please enter the password you would like to use: " password
echo
echo "You entered" $password "for your password."
echo "Masking what's entered does not obscure the data in anyway."

Comme vous pouvez le voir, le -s l'option masquait la saisie lors de la saisie du mot de passe. Cependant, il s'agit d'une technique superficielle et n'offre pas une réelle sécurité.

4. Utilisation d'une limite de caractères avec l'option de lecture -n

Vous pouvez ajouter une contrainte à l'entrée et la limiter à un nombre n de caractères.

Utilisons le même script qu'avant mais modifions-le pour que les entrées soient limitées à 5 caractères.

read -n 5 -p "What is your desired username? " username

Ajoutez simplement -n N où N est le nombre de votre choix.

J'ai fait la même chose pour notre mot de passe.

bash secret.sh
What is your desired username? tuxy_Your username will be tuxy_.
Please enter the password you would like to use:
You entered boy for your password.

Comme vous pouvez le voir, le programme a cessé de collecter les entrées après 5 caractères pour le nom d'utilisateur.

Cependant, je peux toujours écrire MOINS de 5 caractères tant que j'appuie sur après la saisie.

Si vous voulez restreindre cela, vous pouvez utiliser -N (au lieu de -n) Cette modification fait en sorte qu'exactement 5 caractères sont requis, ni moins, ni plus.

5. Stocker des informations dans un tableau -a

Vous pouvez également utiliser la commande read sous Linux pour créer vos propres tableaux. Cela signifie que nous pouvons affecter des morceaux d'entrée aux éléments d'un tableau. Par défaut, la touche espace séparera les éléments.

[email protected]:~$ read -a array
abc def 123 x y z
[email protected]:~$ echo  ${array[@]}
abc def 123 x y z
[email protected]:~$ echo  ${array[@]:0:3}
abc def 123
[email protected]:~$ echo  ${array[0]}
abc
[email protected]:~$ echo  ${array[5]}
z

Si vous débutez avec les tableaux ou si vous les voyez pour la première fois dans bash, je décomposerai ce qui se passe.

  • Entrez les éléments souhaités, séparés par des espaces.
  • Si nous ne mettons que la variable @, elle itérera et imprimera la boucle entière.
  • Le symbole @ représente le numéro de l'élément et avec les deux-points après, nous pouvons dire itérer de l'index 0 à l'index 3 (comme écrit ici).
  • Imprime l'élément à l'index 0.
  • Semblable à ci-dessus, mais montre que les éléments sont séparés par l'espace

Astuce bonus :ajouter une fonction de délai d'attente

Vous pouvez également ajouter un délai d'attente à notre lecture. Si aucune entrée n'est capturée dans le temps imparti, le programme continuera ou se terminera.

[email protected]:~$ read -t 3
[email protected]:~$

Cela peut ne pas être évident en regardant la sortie, mais le terminal a attendu trois secondes avant d'expirer et de terminer le programme de lecture.

Conclusion

J'espère que ce tutoriel vous a été utile pour démarrer avec la commande de lecture sous Linux. Comme toujours, nous aimons avoir des nouvelles de nos lecteurs sur le contenu qui les intéresse. Laissez un commentaire ci-dessous et partagez vos impressions avec nous !


Linux
  1. 7 exemples pratiques de la commande cd sous Linux

  2. Commande cp sous Linux :7 exemples pratiques

  3. Commande d'arrêt de Linux :5 exemples pratiques

  4. Exemples pratiques de la commande Unzip sous Linux

  5. 5 exemples pratiques de la commande dd sous Linux

Les 50 exemples pratiques de la commande SED sous Linux

15 exemples pratiques de commande Rsync sous Linux

5 exemples pratiques de la commande Tail sous Linux

commande echo sous Linux :7 exemples pratiques

Exemples essentiels de la commande ps sous Linux

Commande Ping pratique dans des exemples Linux