Maison >Opération et maintenance >exploitation et maintenance Linux >Présentation de l'utilisation de read sous Linux
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!