Heim > Artikel > Betrieb und Instandhaltung > Einführung in die Verwendung von Read unter Linux
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!