Tout d'abord, consultez la syntaxe de base de la commande «Read»:
variable [option]
L'utilisation de la commande «lire» signifie que vous interagissez avec Bash pour obtenir des informations de l'utilisateur. Il enregistre la valeur dans une variable, mais sans «$" signe. Vous pourrez mieux comprendre ce concept avec un exemple.
Exemple 1: Utilisation de la commande «lire» dans un script bash
Pour examiner la commande «lire» plus en profondeur, nous créerons un script simple qui demandera le nom de l'utilisateur. Tout d'abord, ouvrez n'importe quel éditeur de texte; Pour ce tutoriel, j'utilise l'éditeur de texte VIM en raison de ses nombreuses fonctionnalités utiles. Pour installer VIM, exécutez la commande suivante dans le terminal:
$ sudo apt install vim
Ensuite, saisissez ce qui suit dans le fichier texte:
#! \ bin \ bash
Echo "Veuillez taper votre nom"
Nom de lecture
Echo «Votre nom est» $ Nom
Enregistrez le fichier par n'importe quel nom, puis appuyez sur Esc et type ": w readcom.shot.«Pour exécuter le script, émettez la commande suivante:
$ bash readcom.shot
Le script ci-dessus demandera à l'utilisateur d'écrire son nom. La commande «Read» enregistrera alors l'entrée de l'utilisateur. La ligne suivante imprimera le nom que l'entrée utilisateur.
Exemple 2: Simplification du code à l'aide de l'opérateur «Invite»
L'exemple ci-dessus peut être simplifié davantage en utilisant le «rapide»Opérateur. Remettons l'exemple ci-dessus pour comprendre le code:
#! / bac / bash
lire -p «Veuillez taper votre nom»
Echo «Votre nom est» $ Nom
Exemple 3: Cacher l'entrée de l'utilisateur à l'aide de l'opérateur «Secret / Silent»
Le "-s»Le drapeau peut être utilisé pour masquer l'entrée de l'utilisateur. L'exemple de script bash suivant vous montre comment utiliser l'opérateur «-s»:
#! / bac / bash
lire -p «Veuillez taper votre nom d'utilisateur»
lire -s -p «Veuillez taper votre mot de passe» $ mot de passe
Exemple 4: limiter la longueur du caractère
Le "-n»Le drapeau peut être utilisé pour ajouter une contrainte au nombre de caractères que l'utilisateur peut saisir.
#!/ bac / bash
lire -n 8 -p "Veuillez taper votre nom d'utilisateur ne dépassant pas 8 caractères"
Echo «Votre nom d'utilisateur est» $ Nom d'utilisateur
Avec l'option «-n», l'utilisateur peut toujours écrire moins de huit caractères. Pour restreindre davantage la longueur d'entrée, le «-N"Le drapeau peut être utilisé, ce qui limite la réponse de l'utilisateur à exactement huit caractères.
Exemple 5: obtenir la contribution dans un tableau
L'entrée de l'utilisateur peut également être prise dans un tableau avec le «-un" drapeau. Par exemple, pour obtenir le nom, l'âge et l'adresse e-mail de l'utilisateur en une seule fois, nous pouvons utiliser un tableau. Regardons un exemple:
#! / bac / bash
Echo "Veuillez taper votre nom, votre âge et votre e-mail"
Lire -Un Nom du tableau Email d'âge
Echo "Votre nom, votre âge et votre adresse e-mail sont: $ array [@] nom d'âge e-mail"
Echo "Votre nom et votre âge sont: $ array [@]: 0: 1 nom Âge"
ECHO "Votre adresse e-mail est: $ Array [2] Email"
Exemple 6: Ajouter un délai d'expiration à la commande «lire»
Comme l'indique le nom de la commande, un délai d'expiration peut être ajouté comme condition de lecture du code à l'aide de l'indicateur «-t», ce qui fait saisir les informations pour un moment spécifique. Sinon, le programme passera à la prochaine ligne de code.
#! \ bin \ bash
Echo «Quelle est la capitale du Japon? Réponse en 5 secondes »
lire -t 5 réponse
Si [«$ répond» = «Tokyo»] || [«$ Réponse» = «Tokyo»];
alors
Echo «Votre réponse est correcte!"
autre
Echo «Votre réponse est erronée!"
Fi
Conclusion
Obtenir la contribution d'une entrée utilisateur est l'une des parties les plus importantes de la programmation, ce qui rend vos programmes plus interactifs. Cet article vous a montré comment utiliser la commande «Read», l'une des commandes clés de Bash Scripting. Dans cet article, vous avez appris certaines des différentes approches que vous pouvez utiliser avec la commande «Read», des opérateurs de drapeaux de base aux opérateurs avancés.