Verwendung des Linux-Lesebefehls

Verwendung des Linux-Lesebefehls

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:

Geben Sie den Websitenamen ein:
Leider ist Ihre Eingabe abgelaufen

(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:

Bitte geben Sie Ihr Passwort ein:
Das von Ihnen eingegebene Passwort lautet runoob

(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:
  • Implementierungsprinzip und Codebeispiele für die Komprimierungsdatei des Linux-Befehls gzip
  • gzip-Befehl unter Linux
  • Verwendung des Linux-Befehls „userdel“
  • Verwendung des Linux-Datumsbefehls
  • So führen Sie Linux-Befehle im Hintergrund aus
  • Verwendung des Linux-Befehls ls
  • Verwendung des Linux-Befehls chkconfig
  • Verwendung des Linux-Befehls usermod
  • Verwendung des Linux-Befehls passwd
  • Verwendung des Linux-Befehls ln
  • Linux-Befehl „cut“ erklärt
  • Verwendung des Linux-Befehls gzip

<<:  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)

Artikel empfehlen

React-Beispiel, das den Fortschritt des Datei-Uploads zeigt

Inhaltsverzeichnis React-Demo zur Anzeige des Dat...

Details zum JavaScript-Prototyp und zur Prototypkette

Inhaltsverzeichnis 1. Prototyp (expliziter Protot...

Der Unterschied zwischen GB2312, GBK und UTF-8 in der Webseitenkodierung

Zunächst müssen wir verstehen, dass GB2312, GBK u...

Strategie zur Optimierung der Leistung von MySQL-Datenbankabfragen

Optimieren von Abfragen Verwenden der Explain-Anw...

Css3 realisiert nahtloses Scrollen und Anti-Shake

Frage Das nahtlose Scrollen von Bildern und Texte...

Eine kurze Diskussion zur Verwendung von React.FC und React.Component

Inhaltsverzeichnis 1. Reagieren.FC<> 2. Kla...

Lösung des Konflikts zwischen Linux-Kernel- und SVN-Versionen

Phänomen Das System konnte den Linux-Systemkernel...

Docker verwendet Nextcloud, um eine private Baidu-Cloud-Festplatte zu erstellen

Plötzlich musste ich einen privaten Dienst für di...

HTML Gewichtsverlust Optimieren Sie HTML-Tags zum Erstellen von Webseiten

HTML 4 HTML (nicht XHTML), MIME-Typ ist text/html...

Universelle Lösung für den Fehler beim Starten von MySQL unter Windows

MySQL-Startfehler Vor der Installation von MySQL ...

js Drag & Drop-Tabelle zur Realisierung der Inhaltsberechnung

In diesem Artikelbeispiel wird der spezifische Co...