Benutzereingabe in Bash

MD Aminul Islam 30 Januar 2023
  1. Benutzereingabe in Bash
  2. Annahme der Yes- oder No-Eingabe des Benutzers
Benutzereingabe in Bash

Die Aufnahme von Benutzereingaben ist für jedes Programm oder Skript sehr wichtig. Auf diese Weise interagiert ein Benutzer mit dem System und stellt eine Eingabe für das System bereit.

Wie andere Programmier- oder Skriptsprachen unterstützt Bash die Annahme von Benutzereingaben. Das allgemeine Format zum Entgegennehmen von Benutzereingaben ist read YOUR_VARIABLE.

Wenn Sie ein Tag für Benutzer erstellen möchten, um ihnen mitzuteilen, welche Art von Eingabe sie benötigen, sieht das Format wie folgt aus: read -p "YOUR INSTRUCTION HERE : " IHRE_VARIABLE. In diesem Artikel werden wir sehen, wie wir Benutzereingaben in Bash in das System übernehmen können.

Außerdem werden wir einige Beispiele und Erklärungen sehen, die für das Thema relevant sind, um das Thema zu vereinfachen.

Benutzereingabe in Bash

Wie wir bereits besprochen haben, müssen wir das Schlüsselwort read verwenden, um Benutzereingaben in das System zu übernehmen. Es ist ein eingebautes Schlüsselwort in Bash, das die Benutzereingabe liest.

Im folgenden Beispiel nehmen wir eine Benutzereingabe und stellen dem Benutzer die Ausgabe bereit, einschließlich der Benutzereingabe. Der Code für unser Beispiel sieht so aus:

read YOUR_VAR
echo "You entered the number $YOUR_VAR"

Oben haben wir ein sehr einfaches Beispiel geteilt, durch das wir eine Eingabe nehmen und eine Ausgabe wie unten bereitstellen.

50
You entered the number 50

Aber woher weiß der Benutzer, dass er hier einen numerischen Wert angeben muss? Wir müssen den Benutzer anweisen, dass er hier einen numerischen Wert angeben muss.

Dazu müssen Sie dem folgenden Beispiel folgen, das ähnlich ist, aber gegenüber dem vorherigen fortgeschritten ist. Der Code für unser Beispiel sieht wie folgt aus.

read -p "Please enter a number: " YOUR_VAR
echo "You entered the number $YOUR_VAR"

Wenn Sie dieses Beispiel ausführen, zeigt das Skript zuerst eine Meldung Please enter a number: und wenn der Benutzer einen numerischen Wert eingibt, erhält er die folgende Ausgabe.

Please enter a number: 50
You entered the number 50

Annahme der Yes- oder No-Eingabe des Benutzers

Unten sehen wir ein Beispiel, das nur die Benutzereingabe zwischen Yes oder No akzeptiert. Der Code für unser Beispiel sieht in etwa so aus:

while true; do
    read -p "Do you wish to continue? " yn
    case $yn in
        [Yy]* ) echo "You have selected YES!! ";;
        [Nn]* ) echo "You have selected NO!! ";;
        * ) echo "Please answer between YES or NO";;
    esac
done

In unserem Beispiel haben wir eine while-Schleife und eine Bedingung case verwendet. Wir nehmen Benutzereingaben über die Zeile read -p "Do you wish to continue? " yn entgegen.

Durch die Zeile [Yy]* ) echo "You have selected YES!!";; und [Nn]* ) echo "You have selected NO!!";; Wir überprüfen die Benutzereingabe.

Wenn die Eingabe Y oder y ist, zeigt es die Ausgabe You have selected YES, und wenn die Eingabe N oder n ist, zeigt es die Ausgabe You have selected NO.

Zuletzt legen wir eine Standardausgabe fest, wenn ein Benutzer eine unerwartete Eingabe durch die Zeile * ) echo "Please answer YES or NO";; macht. Nach dem Ausführen des Codes erhalten wir eine Ausgabe wie diese:

Do you wish to continue the program? Y
You have selected YES!!
Do you wish to continue the program? Y
You have selected YES!!
Do you wish to continue the program? N
You have selected NO!!

Bitte beachten Sie, dass der gesamte in diesem Artikel verwendete Code in Bash geschrieben ist. Es funktioniert nur in der Linux Shell-Umgebung.

MD Aminul Islam avatar MD Aminul Islam avatar

Aminul Is an Expert Technical Writer and Full-Stack Developer. He has hands-on working experience on numerous Developer Platforms and SAAS startups. He is highly skilled in numerous Programming languages and Frameworks. He can write professional technical articles like Reviews, Programming, Documentation, SOP, User manual, Whitepaper, etc.

LinkedIn

Verwandter Artikel - Bash Input