staging.inyokaproject.org

Für diese Funktion musst du eingeloggt sein.

Read Eingabe lesen

Status: Gelöst | Ubuntu-Version: Server 22.10 (Kinetic Kudu)
Antworten |

msebastian100

Avatar von msebastian100

Anmeldungsdatum:
13. Oktober 2016

Beiträge: 36

Hallo, Ich wollte mit read eine Eingabe lesen lassen doch leider funktioniert das leider nicht so wie ich mir das gedacht hatte.

./test.sh: line 11: syntax error near unexpected token else' ./test.sh: line 11: else'

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
#!/bin/bash
echo Minecraft
echo "1 Install [mci]"
echo "Bitte auswaelen:"
read mci
 if $mci then
 echo -e "\e[01;32;32m Minecraft wird installiert\e[0m"
 else
 echo "falsche Eingabe"
 fi

MfG msebastian100

Bearbeitet von rklm:

Syntaxhighlighting

wxpte

Anmeldungsdatum:
20. Januar 2007

Beiträge: 1388

Zum einen fehlt da ein Semikolon:

if $mci; then

Zum anderen sollte dir bewusst sein, dass die Variable $mci genau mit dem Inhalt gefüllt wird, den du bei der Abfrage eingibst. Du müsstest also exakt den Befehl eingeben, mit welchem Minecraft dann auch installiert wird.

Mir scheint jedoch, dass du mit dem Skript nur bestätigen lassen willst, dass Minecraft installiert werden soll. Dann müsste das Skript eher so aussehen:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
#!/bin/bash
echo Minecraft
echo "1 Install [mci]"
read -p "Bitte auswaelen: " mci
if [ "$mci" = 1 ]; then
   echo -e "\e[01;32;32m Minecraft wird installiert\e[0m"
   # hier den genauen Befehl zur Installation von Minecraft einfügen
else
   echo "falsche Eingabe"
fi

user_unknown

Avatar von user_unknown

Anmeldungsdatum:
10. August 2005

Beiträge: 17630

Wenn der User eine Auswahlliste mit Nummern angezeigt bekommen soll, drängt sich das zu unrecht wenig populäre "select" auf:

1
2
3
4
5
6
7
8
select auswahl in Minecraft Abbruch
do
   case $auswahl in      
       Minecraft) echo install Minecraft; break ;;      
         Abbruch) echo Abbruch; break ;; 
               *) echo "again? Auswahl war: $auswahl";;   
   esac
done 

Beim Abbruch evtl. exit statt break aufrufen, je nach Kontext.

Beim Install evtl. die Installation da gleich starten.

Bei 2 Auwahlen tut es aber auch ein if/else natürlich, evtl. mit yYJj/nN als mögliche Antwort.

msebastian100

(Themenstarter)
Avatar von msebastian100

Anmeldungsdatum:
13. Oktober 2016

Beiträge: 36

Vielen Dank für eure Hilfe wxpte user_unknown

Doc_Symbiosis

Avatar von Doc_Symbiosis

Anmeldungsdatum:
11. Oktober 2006

Beiträge: 4453

Falls das Thema damit erledigt ist, markiere es bitte noch als gelöst.

msebastian100

(Themenstarter)
Avatar von msebastian100

Anmeldungsdatum:
13. Oktober 2016

Beiträge: 36

Doc_Symbiosis schrieb:

Falls das Thema damit erledigt ist, markiere es bitte noch als gelöst.

Es ist bereits als gelöst markiert

Antworten |