Maison >Opération et maintenance >exploitation et maintenance Linux >Présentation de l'utilisation de read sous Linux

Présentation de l'utilisation de read sous Linux

巴扎黑
巴扎黑original
2017-09-04 15:38:002066parcourir

1. Lecture de base

La commande read reçoit une entrée d'une entrée standard (clavier) ou une entrée d'autres descripteurs de fichiers (discutés plus tard). Après avoir obtenu l'entrée, la commande read place les données dans une variable standard. Voici la forme la plus simple de la commande de lecture

::

#!/bin/bash
echo -n "Enter your name:"   //参数-n的作用是不换行,echo默认是换行
read  name                   //从键盘输入
echo "hello $name,welcome to my program"     //显示信息
exit 0                       //退出shell程序。
//********************************

Puisque la commande de lecture fournit le paramètre -p, une invite peut être spécifiée directement sur la ligne de commande de lecture.

Le script ci-dessus peut donc être abrégé comme le script suivant ::

#!/bin/bash
read -p "Enter your name:" name
echo "hello $name, welcome to my program"
exit 0

La variable après lecture ci-dessus n'a qu'un seul nom, ou il peut y en avoir plusieurs à ce moment, si vous le souhaitez. saisissez plusieurs données, puis les premières données sont données à la première variable et les secondes données sont données à la deuxième variable. S'il y a trop de données d'entrée, toutes les valeurs finales sont données à la première variable. Ne se terminera pas si trop peu de contribution.

//****************************************** *

Vous n'avez pas besoin de spécifier de variables dans la ligne de commande de lecture. Si vous ne spécifiez pas de variable, la commande de lecture placera les données reçues dans la variable d'environnement REPLY.

Par exemple ::

read -p "Entrez un nombre"

La variable d'environnement REPLY contient toutes les données saisies et peut être utilisée dans des scripts shell comme d'autres variables d'environnement variable REPLY.

2. Entrée de synchronisation.

Il existe des dangers potentiels lors de l'utilisation de la commande read. Le script s'arrêtera très probablement et attendra la saisie de l'utilisateur. Si le script doit poursuivre son exécution, que des données soient saisies ou non, un minuteur peut être spécifié à l'aide de l'option -t.

L'option -t spécifie le nombre de secondes pendant lesquelles la commande de lecture attend une entrée. Lorsque le minuteur expire, la commande de lecture renvoie un état de sortie non nul

#!/bin/bash
if read -t 5 -p "please enter your name:" name
then 
echo "hello $name ,welcome to my script"
else
echo "sorry,too slow"
fi
exit 0

En plus de saisir le minuteur, vous pouvez également définir la commande de lecture pour compter les caractères saisis. Lorsque le nombre de caractères saisis atteint le nombre prédéterminé, il quitte automatiquement et attribue les données saisies aux variables.

#!/bin/bash
read -n1 -p "Do you want to continue [Y/N]?" answer
case $answer in
Y | y)
  echo "fine ,continue";;
N | n)
  echo "ok,good bye";;
*)
 echo "error choice";;
esac
exit 0

Cet exemple utilise l'option -n, suivie de la valeur 1, pour demander à la commande read de se terminer dès qu'elle reçoit un caractère. Appuyez simplement sur un caractère pour répondre, et la commande de lecture

accepte immédiatement l'entrée et la transmet à une variable. Pas besoin d'appuyer sur Entrée.

3. Lecture silencieuse (l'entrée n'est pas affichée sur le moniteur)

Parfois, la saisie de l'utilisateur du script est requise, mais les données saisies ne devraient pas être affichées sur le moniteur. Un exemple typique est la saisie d’un mot de passe, mais bien sûr, de nombreuses autres données doivent être masquées. L'option

-s permet aux données saisies dans la commande de lecture de ne pas être affichées sur le moniteur (en fait, les données sont affichées, mais la commande de lecture définit la couleur du texte sur la même couleur que l'arrière-plan).

#!/bin/bash
read  -s  -p "Enter your password:" pass
echo "your password is $pass"
exit 0

4. Lire les fichiers

Enfin, vous pouvez également utiliser la commande read pour lire des fichiers sur le système Linux.

Chaque fois que la commande read est appelée, "une ligne" de texte dans le fichier sera lue. Lorsque le fichier n'a aucune ligne lisible, la commande read se terminera avec un statut différent de zéro.

La clé pour lire un fichier est de savoir comment transférer les données du texte vers la commande de lecture.

La méthode la plus courante consiste à utiliser la commande cat sur le fichier et à rediriger les résultats directement vers la commande while contenant la commande read

Exemple ::

#!/bin/bash
count=1    //赋值语句,不加空格
cat test | while read line        //cat 命令的输出作为read命令的输入,read读到的值放在line中
do
   echo "Line $count:$line"
   count=$[ $count + 1 ]          //注意中括号中的空格。
done
echo "finish"
exit

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn