Wie der Titel sagt, versuche ich, ein Programm, das eine Benutzereingabe hat eine Nummer 1-7, dann zeigt den entsprechenden Befehl für jede Nummer.Erstellen eines Programms, das Benutzereingaben für eine Nummer 1-7 benötigt und dann einen Befehl entsprechend der vom Benutzer gewählten Nummer anzeigt. [Bash - CentOS]
Das Problem, das ich habe, ist eine gute Möglichkeit, um jede Zahl auf einen Befehl festzulegen.
Zuerst dachte ich darüber nach, so etwas zu tun.
OSI=$(uname -a)
echo $OSI
Aber das Problem damit ist es tatsächlich in eine Schleife zu implementieren. Nehmen wir an, der Benutzer wie so aufgefordert wird:
"Enter a number:"
Der Benutzer gibt die Nummer 1 und Nummer 1 ist die OSI. Nun, wenn ein Benutzer die Nummer 2 wählt, muss er einen anderen Befehl anzeigen und so weiter.
Dies ist ein bisschen zu kompliziert für einen Anfänger wie mich. Ich habe Foren und verschiedene Beiträge gelesen, aber ich kann die richtigen Befehle nicht finden, um dies zu ermöglichen.
habe ich versucht, so etwas wie dies zu tun und es kläglich gescheitert:
#!/bin/bash
read -p "Enter a number:" n1 n2 n3 n4 n5 n6 n7
if n1=1; then
uname - a
else n2=2; "different command"
fi
Ich weiß, ich bash völlig Müll bin. Ich fordere niemanden auf, das zu lösen, gib mir nur einige Hinweise, die für mich Sinn ergeben.
Danke.
Suchen Sie nach der 'case' Anweisung in der Manpage Ihrer Shell. –
Sie können auch 'select' betrachten (was oft mit' case' verwendet wird, um diese Art menübasierter Schnittstelle zu implementieren). – chepner
Der Fall Befehl scheint gut für mich zu arbeiten. Es scheint genau das zu sein, was ich brauchte. Vielen Dank. – darkfireinsanity