Menu
Coddy logo textTech

Benutzereingabe in Skripten

Teil des Abschnitts Grundlagen der Terminal-Journey von Coddy — Lektion 69 von 82.

Variablen sind nützlich, aber manchmal möchten Sie, dass Ihr Skript den Benutzer während der Ausführung nach Informationen fragt. Der read-Befehl pausiert das Skript und wartet, bis der Benutzer etwas eingibt, dann speichert er diese Eingabe in einer Variable.

So funktioniert es:

#!/bin/bash
echo "What is your name?"
read name
echo "Hello, $name!"

Wenn dieses Skript ausgeführt wird, druckt es die Frage aus, wartet, bis der Benutzer seinen Namen eingibt und Enter drückt, und begrüßt ihn dann. Der read-Befehl nimmt alles, was der Benutzer eingibt, und speichert es in der Variable name.

Sie können den Prompt kompakter gestalten, indem Sie die -p-Option verwenden, die die Prompt-Nachricht und die Eingabe in derselben Zeile kombiniert:

#!/bin/bash
read -p "Enter your name: " name
echo "Hello, $name!"

Dies zeigt Enter your name: an und wartet auf Eingabe in derselben Zeile, was eleganter aussieht. Die -p-Option nimmt den Prompt-Text als Argument, gefolgt vom Variablennamen zur Speicherung der Eingabe.

Benutzereingaben machen Skripte interaktiv und anpassbar. Anstatt Werte fest einzukodieren, können Sie ein Skript schreiben, das je nach dem, was der Benutzer jedes Mal bereitstellt, wenn er es ausführt, anders funktioniert.

challenge icon

Aufgabe

Einfach

Erstellen Sie ein Shell-Skript namens greeter.sh, das den Benutzer nach seiner Lieblingsfarbe fragt und dann eine Nachricht mit seiner Eingabe anzeigt.

Ihr Skript sollte:

  1. Mit der Shebang-Zeile beginnen (#!/bin/bash)
  2. read mit der -p-Flag verwenden, um folgendes Prompt anzuzeigen: What is your favorite color?
  3. Die Eingabe in einer Variable namens color speichern
  4. echo verwenden, um auszugeben: Nice! [color] is a great color! (wobei [color] die Eingabe des Benutzers ist)

Machen Sie das Skript ausführbar und führen Sie es aus. Wenn aufgefordert, geben Sie blue als Ihre Antwort ein.

Ihre Ausgabe sollte sein:

What is your favorite color? blue
Nice! blue is a great color!

Tipp: Erstellen Sie das Skript Zeile für Zeile mit echo und Umleitung. Verwenden Sie read -p "What is your favorite color? " color, um abzufragen und die Eingabe zu erfassen, dann echo "Nice! $color is a great color!", um das Ergebnis anzuzeigen.

Spickzettel

Der read-Befehl pausiert das Skript und wartet auf Benutzereingabe, dann speichert er sie in einer Variable:

#!/bin/bash
echo "What is your name?"
read name
echo "Hello, $name!"

Verwenden Sie die -p-Option, um den Prompt und die Eingabe in derselben Zeile anzuzeigen:

#!/bin/bash
read -p "Enter your name: " name
echo "Hello, $name!"

Die -p-Option nimmt den Prompt-Text als Argument, gefolgt vom Variablennamen, um die Eingabe zu speichern.

Probier es selbst

Terminal
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Grundlagen