Linux Bash case Abfrage funktioniert nicht
Hallo zusammen,
ich bin gerade dabei ein kleines Linux Script zu schreiben welches per User Input Werte einlesen soll.
Bei dem Punkt wo mir 4 Werte vorgeblendet werden sollen und der User eine Auswahl treffen soll wird der Wert aber irgendwie nicht korrekt übergeben.
Aktuell habe ich das ganze mittels select probiert.
Hier mein Code:
Die Abfragen funktionieren ja soweit nur irgendwie wird der Wert für ${var_environment} nicht übergeben den ich aber für die weitere Verarbeitung benötige
Könnt Ihr mir sagen wo hier mein Fehler liegt ?
Vielen Dank & Gruß
ich bin gerade dabei ein kleines Linux Script zu schreiben welches per User Input Werte einlesen soll.
Bei dem Punkt wo mir 4 Werte vorgeblendet werden sollen und der User eine Auswahl treffen soll wird der Wert aber irgendwie nicht korrekt übergeben.
Aktuell habe ich das ganze mittels select probiert.
Hier mein Code:
#!/bin/bash
echo "Bitte Vera-ID eingeben: "
read var_vera_id
echo "Bitte CI-Nummer eingeben: "
read var_ci_nummer
echo "Bitte Laufzeitumgebung auswaehlen:"
select var_environment in lantest lanprod dmztest dmzprod
do
case ${var_environment} in
*) echo "Umgebung wurde ausgewaehlt " ${var_environment}; break;;
esac
done
echo "Bitte Display Namen (Projekt) eingeben: "
read var_display_name
echo "Bitte Projektbeschreibung eingeben: "
read var_description
echo "Bitte RAM Wert eingeben: "
read var_memory
echo "Bitte CPU Wert eingeben: "
read var_cpu
echo "Zusammenfassung der eingegeben Werte: "
echo "Vera ID: " ${var_vera_id}
echo "CI-Nummer: " ${var_ci_nummer}
echo "Laufzeitumgebung: " ${var_environment}
echo "Display Name: " ${var_display_name}
echo "Description: " ${var_description}
echo "Zugewiesener RAM: " ${var_memory}
echo "Zugewiesene CPU: " ${var_cpu}
Die Abfragen funktionieren ja soweit nur irgendwie wird der Wert für ${var_environment} nicht übergeben den ich aber für die weitere Verarbeitung benötige
Bitte Vera-ID eingeben:
vera-1234
Bitte CI-Nummer eingeben:
ci-987654321
Bitte Laufzeitumgebung auswaehlen:
1) lantest
2) lanprod
3) dmztest
4) dmzprod
#? lantest
Umgebung wurde ausgewaehlt
Bitte Display Namen (Projekt) eingeben:
Test Name
Bitte Projektbeschreibung eingeben:
Test Beschreibung
Bitte RAM Wert eingeben:
1000Mi
Bitte CPU Wert eingeben:
1
Zusammenfassung der eingegeben Werte:
Vera ID: vera-1234
CI-Nummer: ci-987654321
Laufzeitumgebung:
Display Name: Test Name
Description: Test Beschreibung
Zugewiesener RAM: 1000Mi
Zugewiesene CPU: 1
Könnt Ihr mir sagen wo hier mein Fehler liegt ?
Vielen Dank & Gruß
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 574420
Url: https://administrator.de/contentid/574420
Ausgedruckt am: 22.11.2024 um 07:11 Uhr
4 Kommentare
Neuester Kommentar
Könnt Ihr mir sagen wo hier mein Fehler liegt ?
Jepp.var_environment
Die Variable var_environment ist nur innerhalb des Select-Statements verfügbar. Entweder du weist die Variable var_environment einer globalen Variable innerhalb des Select-Statements zu oder du nutzt nach der Select Abfrage die automatische Variable $REPLY um die Auswahl des Users auszuwerten.==> https://linuxhint.com/bash_select_command/
Moin,
Ja, kann ich. Du musst nicht "lantest", sondern "1" eingeben. Dann klappt das auch.
Liebe Grüße
Erik
Zitat von @BadFsaadKl:
Könnt Ihr mir sagen wo hier mein Fehler liegt ?
Bitte Vera-ID eingeben:
> vera-1234
> Bitte CI-Nummer eingeben:
> ci-987654321
> Bitte Laufzeitumgebung auswaehlen:
> 1) lantest
> 2) lanprod
> 3) dmztest
> 4) dmzprod
> #? lantest
> Umgebung wurde ausgewaehlt
Könnt Ihr mir sagen wo hier mein Fehler liegt ?
Ja, kann ich. Du musst nicht "lantest", sondern "1" eingeben. Dann klappt das auch.
Liebe Grüße
Erik
Zitat von @144260:
==> https://linuxhint.com/bash_select_command/
Könnt Ihr mir sagen wo hier mein Fehler liegt ?
Jepp.var_environment
Die Variable var_environment ist nur innerhalb des Select-Statements verfügbar. Entweder du weist die Variable var_environment einer globalen Variable innerhalb des Select-Statements zu oder du nutzt nach der Select Abfrage die automatische Variable $REPLY um die Auswahl des Users auszuwerten.==> https://linuxhint.com/bash_select_command/
Hmmmm, bei mir funktioniert das unveränderte Skript wie vom TO gewollt:
erik@*********:~/bin> ./test.sh
Bitte Vera-ID eingeben:
1
Bitte CI-Nummer eingeben:
2
Bitte Laufzeitumgebung auswaehlen:
1) lantest
2) lanprod
3) dmztest
4) dmzprod
#? 3
Umgebung wurde ausgewaehlt dmztest
Bitte Display Namen (Projekt) eingeben:
blah
Bitte Projektbeschreibung eingeben:
blubb
Bitte RAM Wert eingeben:
128
Bitte CPU Wert eingeben:
12
Zusammenfassung der eingegeben Werte:
Vera ID: 1
CI-Nummer: 2
Laufzeitumgebung: dmztest
Display Name: blah
Description: blubb
Zugewiesener RAM: 128
Zugewiesene CPU: 12
Liebe Grüße
Erik