Heim  >  Artikel  >  Betrieb und Instandhaltung  >  Einführung in die Verwendung von Read unter Linux

Einführung in die Verwendung von Read unter Linux

巴扎黑
巴扎黑Original
2017-09-04 15:38:002008Durchsuche

1. Grundlegendes Lesen

Der Lesebefehl empfängt Eingaben von der Standardeingabe (Tastatur) oder Eingaben von anderen Dateideskriptoren (später besprochen). Nach Erhalt der Eingabe fügt der Lesebefehl die Daten in eine Standardvariable ein. Das Folgende ist die einfachste Form des Lesebefehls

::

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

Da der Lesebefehl den Parameter -p bereitstellt, kann eine Eingabeaufforderung direkt in der Lesebefehlszeile angegeben werden.

Das obige Skript kann also wie folgt abgekürzt werden:

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

Im obigen Lesevorgang hat die Variable nach dem Lesen nur einen Namen, oder es können mehrere sein Wenn Sie mehrere Daten eingeben, werden die ersten Daten an die erste Variable übergeben, und die zweiten Daten werden an die zweite Variable übergeben. Wenn zu viele Eingabedaten vorhanden sind, werden alle endgültigen Werte an die erste Variable übergeben . Wird nicht beendet, wenn zu wenig Eingabe erfolgt.

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

Sie müssen keine Variablen in der Lesebefehlszeile angeben. Wenn Sie keine Variable angeben, platziert der Lesebefehl die empfangenen Daten in der Umgebungsvariablen REPLY.

Zum Beispiel::

read -p "Geben Sie eine Zahl ein"

Die Umgebungsvariable REPLY enthält alle eingegebenen Daten und kann wie andere Umgebungsvariablen in Shell-Skripten verwendet werden Variable ANTWORT.

2. Timing-Eingabe.

Die Verwendung des Lesebefehls birgt potenzielle Gefahren. Das Skript wird höchstwahrscheinlich anhalten und auf Benutzereingaben warten. Wenn das Skript unabhängig von der Dateneingabe weiter ausgeführt werden muss, kann mit der Option -t ein Timer angegeben werden.

Die Option -t gibt die Anzahl der Sekunden an, die der Lesebefehl auf die Eingabe wartet. Wenn der Timer abläuft, gibt der Lesebefehl einen Exit-Status ungleich Null zurück.

#!/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

Zusätzlich zur Eingabe des Timers können Sie den Lesebefehl auch so einstellen, dass er die eingegebenen Zeichen zählt. Wenn die Anzahl der eingegebenen Zeichen die vorgegebene Anzahl erreicht, wird der Vorgang automatisch beendet und die eingegebenen Daten den Variablen zugewiesen.

#!/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

In diesem Beispiel wird die Option -n gefolgt vom Wert 1 verwendet, um den Lesebefehl anzuweisen, zu beenden, sobald er ein Zeichen empfängt. Drücken Sie einfach ein Zeichen, um zu antworten, und der Lesebefehl

akzeptiert sofort die Eingabe und übergibt sie an eine Variable. Es ist nicht nötig, die Eingabetaste zu drücken.

3. Stilles Lesen (Eingabe wird nicht auf dem Monitor angezeigt)

Manchmal ist eine Benutzereingabe im Skript erforderlich, es wird jedoch nicht erwartet, dass die eingegebenen Daten angezeigt werden den Monitor. Ein typisches Beispiel ist die Eingabe eines Passwortes, aber natürlich gibt es noch viele andere Daten, die verborgen bleiben müssen. Die Option

-s ermöglicht, dass die im Lesebefehl eingegebenen Daten nicht auf dem Monitor angezeigt werden (tatsächlich werden die Daten angezeigt, aber der Lesebefehl setzt die Textfarbe auf die gleiche Farbe wie den Hintergrund).

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

4. Dateien lesen

Schließlich können Sie auch den Lesebefehl verwenden, um Dateien auf dem Linux-System zu lesen.

Jedes Mal, wenn der Lesebefehl aufgerufen wird, wird „eine Zeile“ Text in der Datei gelesen. Wenn die Datei keine lesbaren Zeilen enthält, wird der Lesebefehl mit einem Status ungleich Null beendet.

Der Schlüssel zum Lesen einer Datei liegt darin, wie die Daten im Text an den Lesebefehl übertragen werden.

Die gebräuchlichste Methode besteht darin, den Befehl „cat“ für die Datei zu verwenden und die Ergebnisse direkt an den Befehl „while“ weiterzuleiten, der den Befehl „read“ enthält.

Beispiel::

#!/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

Das obige ist der detaillierte Inhalt vonEinführung in die Verwendung von Read unter Linux. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn