GNU/Linux >> LINUX-Kenntnisse >  >> Linux

5 praktische Beispiele für den Read-Befehl unter Linux

Was ist der Lesebefehl unter Linux?

Der Lesebefehl unter Linux ist eine Möglichkeit für Benutzer, mit Eingaben von der Tastatur zu interagieren, die möglicherweise als stdin (Standardeingabe) oder andere ähnliche Beschreibungen bezeichnet werden.

Mit anderen Worten, wenn Sie möchten, dass Ihr Bash-Skript Eingaben vom Benutzer entgegennimmt, müssen Sie den Lesebefehl verwenden.

Ich werde einige einfache Bash-Skripte schreiben, um Ihnen die praktische Verwendung des Lesebefehls zu zeigen.

Befehlsbeispiele lesen

Der read-Befehl kann am Anfang verwirrend sein, besonders für diejenigen, die neu im Shell-Scripting sind. Die Skripte, die ich hier verwenden werde, sind sehr einfach zu verstehen und sollten leicht zu befolgen sein, besonders wenn Sie zusammen mit dem Tutorial üben.

Grundlegende Programmierkonzepte

Bei fast jedem Programm oder Skript möchten Sie Informationen von einem Benutzer entgegennehmen (Eingabe) und dem Computer mitteilen, was er mit diesen Informationen tun soll (Ausgabe).

Wenn Sie read verwenden, teilen Sie dem Bash-Terminal mit, dass Sie die Eingabe des Benutzers erfassen möchten. Standardmäßig erstellt der Befehl eine Variable, um diese Eingabe zu speichern.

read [options] variable_name

Sehen wir uns nun einige Beispiele für den Lesebefehl an, um zu verstehen, wie Sie ihn in verschiedenen Situationen verwenden können.

1. Lesebefehl ohne Optionen

Wenn Sie read ohne zusätzliche Optionen eingeben, müssen Sie die Eingabetaste drücken, um die Erfassung zu starten. Das System erfasst Eingaben, bis Sie erneut die Eingabetaste drücken.

Standardmäßig werden diese Informationen in einer Variablen namens $REPLY gespeichert .

Um das erste Beispiel leichter nachvollziehen zu können, verwende ich den Symbol wird angezeigt, wenn die Eingabetaste gedrückt wird.

read ↵
hello world ↵
echo $REPLY ↵
hello world

Mehr über Variablen

Wie ich bereits erwähnt habe, die $REPLY Variable ist in read eingebaut , sodass Sie es nicht deklarieren müssen.

Das mag in Ordnung sein, wenn Sie nur eine Anwendung im Sinn haben, aber höchstwahrscheinlich möchten Sie Ihre eigenen Variablen verwenden. Wenn Sie die Variable mit read deklarieren, müssen Sie nichts anderes tun, als den Namen der Variablen einzugeben.

Wenn Sie die Variable aufrufen möchten, verwenden Sie ein $ vor dem Namen. Hier ist ein Beispiel, in dem ich die Variable Linux_Handbook erstelle und weisen Sie ihm den Wert der Eingabe zu.

Sie können den Echo-Befehl verwenden, um zu überprüfen, ob der Lesebefehl seine Wirkung entfaltet hat:

read Linux_Handbook ↵
for easy to follow Linux tutorials.
echo $Linux_Handbook ↵
for easy to follow Linux tutorials.

Erinnerung:Bei Variablennamen wird zwischen Groß- und Kleinschreibung unterschieden.

2. Eingabeaufforderungsoption -p

Wenn Sie ein Skript schreiben und Benutzereingaben erfassen möchten, gibt es eine Leseoption zum Erstellen einer Eingabeaufforderung, die Ihren Code vereinfachen kann. Beim Codieren dreht sich alles um Effizienz, richtig?

Anstatt zusätzliche Zeilen und Echobefehle zu verwenden, können Sie einfach das -p verwenden Option-Flag. Der Text, den Sie in Anführungszeichen eingeben, wird wie beabsichtigt angezeigt, und der Benutzer muss nicht die Eingabetaste drücken, um mit der Erfassung der Eingabe zu beginnen.

Anstatt also zwei Codezeilen wie folgt zu schreiben:

echo "What is your desired username? "
read username

Sie können das -p verwenden Option mit einem Lesebefehl wie diesem:

read -p "What is your desired username? " username

Die Eingabe wird in der Variablen $username.

gespeichert

3. Option „Geheim“/Stumm -s

Ich habe ein einfaches Bash-Skript geschrieben, um das nächste Flag zu demonstrieren. Sehen Sie sich zuerst die Ausgabe an.

bash secret.sh
What is your desired username? tuxy_boy
Your username will be tuxy_boy.
Please enter the password you would like to use:

You entered Pass123 for your password.
Masking what's entered does not obscure the data in anyway.

Hier ist der Inhalt von secret.sh wenn Sie es neu erstellen möchten.

#!/bin/bash
read -p "What is your desired username? " username
echo "Your username will be" $username"."
read -s -p "Please enter the password you would like to use: " password
echo
echo "You entered" $password "for your password."
echo "Masking what's entered does not obscure the data in anyway."

Wie Sie sehen können, ist das -s Option maskierte die Eingabe, wenn das Passwort eingegeben wurde. Dies ist jedoch eine oberflächliche Technik und bietet keine wirkliche Sicherheit.

4. Verwendung einer Zeichenbegrenzung mit Leseoption -n

Sie können der Eingabe eine Einschränkung hinzufügen und sie auf eine Anzahl von n Zeichen in der Länge begrenzen.

Lassen Sie uns dasselbe Skript von vorher verwenden, aber modifizieren Sie es so, dass Eingaben auf 5 Zeichen begrenzt sind.

read -n 5 -p "What is your desired username? " username

Fügen Sie einfach -n N hinzu wobei N die Nummer Ihrer Wahl ist.

Ich habe dasselbe für unser Passwort getan.

bash secret.sh
What is your desired username? tuxy_Your username will be tuxy_.
Please enter the password you would like to use:
You entered boy for your password.

Wie Sie sehen können, hat das Programm nach 5 Zeichen für den Benutzernamen aufgehört, Eingaben zu sammeln.

Ich könnte jedoch immer noch WENIGER als 5 Zeichen schreiben, solange ich drücke nach der Eingabe.

Wenn Sie das einschränken möchten, können Sie -N verwenden (statt -n) Diese Modifikation macht es so, dass genau 5 Zeichen benötigt werden, weder weniger noch mehr.

5. Speichern von Informationen in einem Array -a

Sie können auch den Befehl read unter Linux verwenden, um Ihre eigenen Arrays zu erstellen. Das bedeutet, dass wir Elementen in einem Array Teile der Eingabe zuweisen können. Standardmäßig trennt die Leertaste Elemente.

[email protected]:~$ read -a array
abc def 123 x y z
[email protected]:~$ echo  ${array[@]}
abc def 123 x y z
[email protected]:~$ echo  ${array[@]:0:3}
abc def 123
[email protected]:~$ echo  ${array[0]}
abc
[email protected]:~$ echo  ${array[5]}
z

Wenn Sie neu bei Arrays sind oder sie zum ersten Mal in Bash sehen, werde ich aufschlüsseln, was passiert.

  • Gewünschte Elemente durch Leerzeichen getrennt eingeben.
  • Wenn wir nur die @-Variable einfügen, wird die gesamte Schleife durchlaufen und gedruckt.
  • Das @-Symbol stellt die Elementnummer dar und mit den Doppelpunkten danach können wir sagen, dass von Index 0 bis Index 3 iteriert wird (wie hier geschrieben).
  • Druckt Element bei Index 0.
  • Ähnlich wie oben, zeigt aber, dass die Elemente durch das Leerzeichen getrennt sind

Bonus-Tipp:Hinzufügen einer Timeout-Funktion

Sie können unserem Lesevorgang auch ein Timeout hinzufügen. Wenn in der vorgegebenen Zeit keine Eingabe erfolgt, wird das Programm fortgesetzt oder beendet.

[email protected]:~$ read -t 3
[email protected]:~$

Es ist vielleicht nicht offensichtlich, wenn man sich die Ausgabe ansieht, aber das Terminal hat drei Sekunden gewartet, bevor es abgelaufen ist und das Leseprogramm beendet hat.

Fazit

Ich hoffe, dieses Tutorial war hilfreich, um Ihnen den Einstieg in den Lesebefehl unter Linux zu erleichtern. Wie immer freuen wir uns, von unseren Lesern über Inhalte zu hören, an denen sie interessiert sind. Hinterlassen Sie unten einen Kommentar und teilen Sie uns Ihre Gedanken mit!


Linux
  1. 7 Praktische Beispiele für den cd-Befehl unter Linux

  2. cp-Befehl unter Linux:7 praktische Beispiele

  3. Linux-Shutdown-Befehl:5 praktische Beispiele

  4. Praktische Beispiele für den Unzip-Befehl unter Linux

  5. 10 praktische Beispiele für Linux-nm-Befehle

Die 50 praktischen Beispiele des SED-Befehls in Linux

15 Praktische Beispiele für den Rsync-Befehl unter Linux

5 praktische Beispiele für Tail-Befehle unter Linux

Echo-Befehl unter Linux:7 praktische Beispiele

Wesentliche Beispiele des ps-Befehls in Linux

Praktischer Ping-Befehl in Linux-Beispielen