1. Befehlseinführung Der Lesebefehl ist ein integrierter Befehl der Shell, der verwendet wird, um eine einzelne Zeile von der Standardeingabe oder dem durch die Option -u angegebenen Dateideskriptor zu lesen, die gelesene einzelne Zeile entsprechend der IFS-Variable in mehrere Felder aufzuteilen und die aufgeteilten Felder jeweils der angegebenen Variablenliste var_name zuzuweisen. Das erste Feld wird der ersten Variable var_name1 zugewiesen, das zweite Feld der zweiten Variable var_name2 und so weiter. Wenn der angegebene Variablenname kleiner als die Anzahl der Felder ist, werden die zusätzlichen Felder zusammen mit dem Trennzeichen dem letzten var_name zugewiesen. Wenn der angegebene Variablenbefehl größer als die Anzahl der Felder ist, sind die zusätzlichen Variablenzuweisungen leer. Wenn kein var_name angegeben ist, werden alle Felder nach der Aufteilung in der spezifischen Variable REPLY gespeichert. Natürlich können nicht nur Variablen, sondern auch Arrays zugewiesen werden. Die Variable IFS (Internal Field Separator) ist eine integrierte Umgebungsvariable der Shell, die vom Lesebefehl verwendet wird, um eine einzelne Zeile in mehrere Felder zu trennen. Der Standardwert ist . Die Variable REPLY ist auch eine integrierte Umgebungsvariable der Shell. Wenn der Lesebefehl keine Empfangsvariable angibt, wird sie verwendet, um eine einzelne Zeile des vom Lesebefehl gelesenen Inhalts zu empfangen. 2. Befehlsformat lesen [-ers] [-a aname] [-d delim] [-i Text] [-n nchars] [-N nchars] [-p Eingabeaufforderung] [-t Timeout] [-u fd] [Name ...] 3. Option Beschreibung -a [aname]: Speichert die geteilten Felder der Reihe nach im angegebenen Array, beginnend beim Array-Index 0. -d [delim]: Gefolgt von einem Bezeichner, nur das erste Zeichen ist nützlich, wird verwendet, um das Zeilenumbruchzeichen als Zeilenende zu ersetzen. -e: Sie können bei der Eingabe die Befehlsvervollständigungsfunktion verwenden und mit der Tabulatortaste die Dateien im aktuellen Verzeichnis automatisch vervollständigen. -i [text]: Wenn readline zum Lesen der Zeile verwendet wird, wird der Text vor Beginn der Bearbeitung in den Bearbeitungspuffer gestellt. -n [nchars]: gefolgt von einer Zahl, definiert die Länge des Eingabetextes, anstatt eine ganze Zeile zu lesen. -N [nchars]: gefolgt von einer Zahl, definiert die Länge des Eingabetextes, anstatt eine ganze Zeile zu lesen. Wenn eine Zeile jedoch weniger als nchars Zeichen hat, wird der Zeilentrenner ignoriert und die nächste Zeile gelesen -p [prompt]: Beim Lesen von Eingaben vom Terminal eine Eingabeaufforderung vor der Eingabe drucken -r: Abgeschirmter Backslash \. Wenn diese Option nicht verfügbar ist, wird \ als Escape-Zeichen verwendet. Wenn dies der Fall ist, ist \ ein normales Zeichen -s: Ruhemodus. Bei der Eingabe von Zeichen werden diese nicht mehr auf dem Bildschirm angezeigt, z. B. die Eingabe eines Passworts beim Anmelden -t [timeout]: Gefolgt von der Anzahl der Sekunden, um die Wartezeit für die Eingabe von Zeichen festzulegen -u [fd]: Gefolgt vom Dateideskriptor fd, aus dem Dateideskriptor lesen 4. Häufige Beispiele (1) Wenn keine Variable angegeben ist, übergibt read den übergebenen Wert an REPLY und dieser kann referenziert werden, solange REPLY aufgerufen wird. [root@TENCENT64 ~]# lesen;echo "\$REPLY:$REPLY" Abonnieren $ANTWORT:dablelv (2) Read gibt eine Eingabeaufforderung beim Lesen vom Terminal an [root@TENCENT64 ~]# read -p"Passwort eingeben:";echo "\$REPLY:$REPLY" Geben Sie Ihr Passwort ein: 123456 $ANTWORT:123456 (3) Der Parameter -t gibt die Anzahl der Sekunden an, die der Lesebefehl auf eine Eingabe wartet. Wenn der Timer abgelaufen ist, gibt der Lesebefehl einen Exit-Statuscode ungleich Null zurück. #!/bin/bash if read -t 5 -p "Website-Namen eingeben:" Name Dann echo "Der von Ihnen eingegebene Websitename ist $website" anders echo "\nEntschuldigung, Ihre Eingabe ist abgelaufen." fi Ausfahrt 0 Führen Sie das Programm ohne Eingabe aus und warten Sie 5 Sekunden:
(4) Zusätzlich zur Steuerung der Eingabezeit können Sie mit der Option -n auch die Anzahl der eingegebenen Zeichen steuern. Wenn die Anzahl der eingegebenen Zeichen die voreingestellte Zahl erreicht, wird das Programm automatisch beendet und die eingegebenen Daten werden der Variablen zugewiesen. Beenden Sie beispielsweise nach dem Empfang von nur 2 Eingaben: #!/bin/bash read -n2 -p "Bitte geben Sie zwei Zeichen ein: " any echo "\nDie beiden Zeichen, die Sie eingegeben haben, sind: $any" Ausfahrt 0 (5) Die Option -s verhindert, dass die Eingabedaten auf dem Kommandoterminal angezeigt werden. (Tatsächlich wird der Eingabeinhalt angezeigt, aber der Lesebefehl setzt die Textfarbe auf die gleiche Farbe wie den Hintergrund.) Diese Option wird häufig zum Eingeben von Passwörtern verwendet. #!/bin/bash read -s -p "Bitte geben Sie Ihr Passwort ein:" pass echo "\nDas eingegebene Passwort ist $pass" Ausfahrt 0 Das Passwort wird nach der Programmausführung nicht angezeigt:
(6) Lesen von Dateien Jeder Aufruf des Lesebefehls liest eine Textzeile aus der Datei. Wenn keine weiteren Zeilen aus der Datei zu lesen sind, wird der Lese-Befehl mit einem Status ungleich Null beendet. während var1 var2 gelesen wird Tun echo $var1 $var2 fertig < Datei.txt Oben finden Sie detaillierte Informationen zur Verwendung des Linux-Lesebefehls. Weitere Informationen zum Linux-Lesebefehl finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM! Das könnte Sie auch interessieren:
|
<<: Ausführliche Erläuterung zum Beispiel der MySQL InnoDB-Tablespace-Verschlüsselung
>>: IIS7 IIS8 http springt automatisch zu HTTPS (Port 80 springt zu Port 443)
Ich habe vor einiger Zeit ein Projekt entwickelt....
Inhaltsverzeichnis React-Demo zur Anzeige des Dat...
Inhaltsverzeichnis 1. Prototyp (expliziter Protot...
Zunächst müssen wir verstehen, dass GB2312, GBK u...
Optimieren von Abfragen Verwenden der Explain-Anw...
Frage Das nahtlose Scrollen von Bildern und Texte...
Inhaltsverzeichnis 1. Reagieren.FC<> 2. Kla...
Frage 1: Die Schreibmethode, die einen Fehler mel...
Phänomen Das System konnte den Linux-Systemkernel...
Plötzlich musste ich einen privaten Dienst für di...
1. HTML-Schriftfarbeneinstellung In HTML verwende...
Dieser Artikel veranschaulicht anhand eines Beisp...
HTML 4 HTML (nicht XHTML), MIME-Typ ist text/html...
MySQL-Startfehler Vor der Installation von MySQL ...
In diesem Artikelbeispiel wird der spezifische Co...