badfsaadkl
Goto Top

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:

#!/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 face-sad 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ß

Content-ID: 574420

Url: https://administrator.de/contentid/574420

Ausgedruckt am: 22.11.2024 um 07:11 Uhr

144260
Lösung 144260 25.05.2020 aktualisiert um 13:27:07 Uhr
Goto Top
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/
BadFsaadKl
BadFsaadKl 25.05.2020 um 13:34:47 Uhr
Goto Top
Hi killpid,

$REPLY war schon die Lösung für mein Problem.

Vielen Dank face-smile
erikro
erikro 25.05.2020 um 13:35:09 Uhr
Goto Top
Moin,

Zitat von @BadFsaadKl:
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
erikro
erikro 25.05.2020 um 13:42:09 Uhr
Goto Top
Zitat von @144260:

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