Einlesen sicherer Eingaben und mehrerer Variablen
In diesem letzten Schritt lernen Sie zwei weitere fortgeschrittene Techniken:
-
Einlesen sicherer Eingaben (wie Passwörter) ohne Anzeige der Zeichen auf dem Bildschirm
-
Einlesen mehrerer Variablen mit einem einzigen read
-Befehl
-
Öffnen Sie Ihr Skript zum Bearbeiten:
nano input_reader.sh
-
Ersetzen Sie den vorhandenen Inhalt durch den folgenden Code:
#!/bin/bash
## Skript, das sicheres Einlesen von Eingaben und das Einlesen mehrerer Variablen demonstriert
## Sicheres Einlesen von Eingaben mit der -s-Flagge (keine Echo-Ausgabe)
echo "Beispiel für sichere Eingabe:"
read -p "Benutzername: " username
read -s -p "Passwort: " password
echo ## Füge eine neue Zeile nach der Passworteingabe hinzu
echo "Eingegebener Benutzername: $username"
echo "Passwortlänge: ${#password} Zeichen"
## Einlesen mehrerer Variablen auf einmal
echo -e "\nBeispiel für mehrere Variablen:"
read -p "Geben Sie Vorname, Nachname und Alter ein (getrennt durch Leerzeichen): " first_name last_name age
echo "Vorname: $first_name"
echo "Nachname: $last_name"
echo "Alter: $age"
## Einlesen mit einem benutzerdefinierten Trennzeichen
echo -e "\nBeispiel für benutzerdefiniertes Trennzeichen:"
read -p "Geben Sie durch Kommas getrennte Werte ein: " -d "," value1
echo ## Füge eine neue Zeile hinzu
echo "Erster Wert vor dem Komma: $value1"
echo -e "\nVielen Dank, dass Sie dieses Lab zum Einlesen von Eingaben unter Linux abgeschlossen haben!"
Dieses Skript:
- Nutzt die
-s
-Flagge bei read
, um die Eingabe zu verbergen (nützlich für Passwörter oder andere sensible Informationen)
- Zeigt, wie man mehrere Variablen aus einer einzigen Eingabezeile einliest, indem man mehrere Variablennamen an den
read
-Befehl übergibt
- Demonstriert die
-d
-Flagge, um ein benutzerdefiniertes Trennzeichen anzugeben (anstelle des Standardzeilenumbruchs)
-
Speichern Sie die Datei, indem Sie Strg+O
drücken, bestätigen Sie den Dateinamen mit Enter
und verlassen Sie nano, indem Sie Strg+X
drücken.
-
Führen Sie das Skript aus, um es zu testen:
./input_reader.sh
Beispielausgabe (Ihre Eingaben werden unterschiedlich sein):
Beispiel für sichere Eingabe:
Benutzername: john_doe
Passwort:
Eingegebener Benutzername: john_doe
Passwortlänge: 8 Zeichen
Beispiel für mehrere Variablen:
Geben Sie Vorname, Nachname und Alter ein (getrennt durch Leerzeichen): John Doe 30
Vorname: John
Nachname: Doe
Alter: 30
Beispiel für benutzerdefiniertes Trennzeichen:
Geben Sie durch Kommas getrennte Werte ein: test,
Erster Wert vor dem Komma: test
Vielen Dank, dass Sie dieses Lab zum Einlesen von Eingaben unter Linux abgeschlossen haben!
Sicherheit ist wichtig, wenn Sie sensible Informationen wie Passwörter verarbeiten. Die -s
-Flagge stellt sicher, dass die eingegebenen Zeichen nicht auf dem Bildschirm angezeigt werden. Beachten Sie, dass im Passwortbeispiel das Skript nur die Länge des Passworts zur Überprüfung anzeigt, nicht das eigentliche Passwort.
Das gleichzeitige Einlesen mehrerer Variablen kann Ihre Skripte effizienter und benutzerfreundlicher machen. Wenn der read
-Befehl mehrere Variablennamen erhält, teilt er die Eingabe basierend auf der IFS (Internal Field Separator)-Umgebungsvariablen auf, die standardmäßig auf Leerzeichen (Leerzeichen, Tabulatoren und Zeilenumbrüche) festgelegt ist.
Die -d
-Flagge ermöglicht es Ihnen, das Trennzeichen zu ändern, das das Ende der Eingabe signalisiert. Standardmäßig stoppt read
bei einem Zeilenumbruch (wenn Sie die Eingabetaste drücken), aber Sie können es auf ein beliebiges Zeichen ändern, wie z. B. ein Komma im Beispiel.