Good to Know Database

Shell-Programmierung: Eingabeaufforderungen programmieren


In manchen Fällen benötigt man eine Eingabeaufforderung über welche der Benutzer Werte an das Shell-Skript übergeben kann. Auf dieser Seite wird gezeigt, wie Sie mit read vom Benutzer eine Eingabe anfordern und diese weiterverarbeiten können.

Erstellen Sie dazu ein kleines Test-Skript, mit welchem Sie die nachfolgenden Beispiele ausprobieren können.

[georg@centos5 ~]$ vi script.sh

Das erste Skript soll den Benutzer nach seinen Namen fragen und diesen danach über eine Ausgabe begrüßen.

#!/bin/bash

read -p "Geben Sie bitte Ihren Namen ein: " name
echo "Hallo ${name}!"

exit 0

Wie Sie sehen, wird hier der Befehl read mit der Option -p verwendet. Dadurch zeigt read erst den angegeben String an und wartet anschließend auf die Eingabe des Benutzers. Die Benutzereingabe wird in die Variable name gespeichert und anschließend über echo ausgegeben.

Bevor Sie das Shell-Skript ausführen können, müssen Sie noch die Zugriffsrechte anpassen.

[georg@centos5 ~]$ chmod u+x script.sh

Danach können Sie das Skript testen.

[georg@centos5 ~]$ ./script.sh
Geben Sie Ihren Namen ein: Georg
Hallo Georg!

Wenn Sie mit read eine Passworteingabe programmieren, sollten Sie die Anzeige des Passwortes deaktivieren. Dazu wird zusätzlich die Option -s benötigt. Ändern Sie das Test-Skript wie folgt ab.

#!/bin/bash

read -s -p "Geben Sie bitte Ihr Passwort ein: " password
echo
echo "Ihr Passwort lautet \"${password}\""

exit 0

Der zusätzliche Aufruf von echo sorgt für einen Zeilenumbruch nach der Eingabe des Passwortes.

Testen Sie die Funktion des Skriptes wieder.

[georg@centos5 ~]$ ./script.sh
Geben Sie bitte Ihr Passwort ein:
Ihr Passwort lautet "StrengGeheim"

Hinweis: Wenn Sie Sonderzeichen eingeben, sollten Sie diese mit einem Backslash einleiten.

Weitere Informationen zu read können Sie der Manpage entnehmen.

[georg@centos5 ~]$ man read


Dieser Eintrag wurde am 13.02.2011 erstellt und zuletzt am 20.10.2013 bearbeitet.

Direkter Link zu dieser Seite: http://www.gtkdb.de/index_7_1145.html

[ Zur Startseite ]   [ Zur Kategorie ]


Valid XHTML 1.0 Transitional Valid CSS Valid Atom 1.0

© 2004-2018 by Georg Kainzbauer