Forum: PC-Programmierung Anfänger braucht Hilfe bei Bash Script


von Sperli (Gast)


Lesenswert?

Hallo Leute,

Möchte gerne ein kleines Menü erstellen.
Es geht mir hier rein nur ums Verständniss.
Um weiter nichts !!!
Warum funktioniert dieses Script nicht?

#!/bin/bash
clear
echo " "
echo "1: Regelmässig geschriebene Werte ausgeben"
echo "2: Da kommen irgendwann mehr"
echo " "
echo " "
echo " "
echo "Zahl oder Ziffer eingeben und Enter drücken"
read option
If [ $option == "1" ]; then
   echo "Eins gedrückt"
fi

von Micha (Gast)


Lesenswert?

if  mit großem I ???

von Mathias B. (mbr)


Lesenswert?

Probier das mal (Groß- und kleinschreibung!) und Return vor then!


#!/bin/bash
clear
echo " "
echo "1: Regelmässig geschriebene Werte ausgeben"
echo "2: Da kommen irgendwann mehr"
echo " "
echo " "
echo " "
echo "Zahl oder Ziffer eingeben und Enter drücken"
read option
if [ $option == "1" ];
then
   echo "Eins gedrückt"
fi

von Sperli (Gast)


Lesenswert?

Mathias B. schrieb:
> if [ $option == "1" ];
> then
>    echo "Eins gedrückt"
> fi

Hat funktioniert :-D Danke

von Dirk D. (dicky_d)


Lesenswert?

Alternativ bietet sich her dialog oder whiptail an :)

von Tux (Gast)


Lesenswert?

das funktioniert garnicht, da es "If" nicht gibt, sondern nur "if".

Das Skript ist doch ziemlich selbsterklärend wenn man es mal ausführt, 
ansonsten führe doch mal diese Befehle auf der Konsole aus und lies:
help echo
help read
help if
help [
man bash

von Tux (Gast)


Lesenswert?

Ups, da hatte ich mich wohl verlesen, dachte die frage war "Wie 
funktioniert das?"... Kohlenstaub auf mein Haupt!

von Daniel A. (daniel-a)


Lesenswert?

Mathias B. schrieb:
> Return vor then!

Da ist schon ein Semikolon, deshalb ist das dort optional. Mit der 
newline wiederum kann man sich das Semikolon sparen.

von tictactoe (Gast)


Lesenswert?

Mathias B. schrieb:
> if [ $option == "1" ];
> then

Übrigens, gaaaanz wichtig wäre, das so zu schrieben:
1
if [ "$option" == "1" ]
2
then
3
  ...
Beachte die Anführungszeichen um die $option herum. Drückst du z.B. nur 
Enter, ohne was einzugeben, dann ist $option leer und es gibt einen 
Syntax-Error.

Generell gilt beim Shell-Skript-Schreiben: Man braucht gute, wirklich 
gute Gründe, wenn man mal $variable ohne Anführungszeichen rundherum 
verwenden muss. Das ist voll der Ausnahmefall!

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.