#1 07.05.2018 19:57:55

TimeMen
Mitglied

Bash Parameter, Syntaxfehler bei ";;"

Hallo,

Bin dabei ein Skript zu schreiben und brauche dabei getopts, damit das Skript je nach Parameter tut, was es soll.
Gefunden habe ich folgendes:

while test $# -gt 0; do
	case "$1" in
	--help)
		help_msg()
		;;
	-h)
		help_msg()
		;;
done  

Leider bekomme ich beim Ausführen folgenden Fehler:

./ctan.sh: Zeile 7: Syntaxfehler beim unerwarteten Wort `;;'
./ctan.sh: Zeile 7: `		;;'

Woran kann das liegen und gibt es noch andere Möglichkeiten sowas in's Skript einzubauen?

LG
TimeMen

Offline

#2 07.05.2018 20:05:08

schard
Mitglied

Re: Bash Parameter, Syntaxfehler bei ";;"

1) Die Klammern hinter den Funktionsaufrufen gehören da nicht hin. Funktionsaufrufe in bash erfolgen wie folgt:

funktion parameter1 parameter2

2) Dir fehlt vor dem done ein esac.

Beitrag geändert von schard (07.05.2018 20:05:32)

Offline

#3 07.05.2018 20:09:16

TimeMen
Mitglied

Re: Bash Parameter, Syntaxfehler bei ";;"

schard schrieb:

1) Die Klammern hinter den Funktionsaufrufen gehören da nicht hin. Funktionsaufrufe in bash erfolgen wie folgt:

funktion parameter1 parameter2

2) Dir fehlt vor dem done ein esac.

Das esac habe ich vergessen einzufügen.
Jetzt habe ich die () hinter den Funktionen entfernt, allerdings lässt sich die Funktion nicht aufrufen, da "Das Kommando nicht gefunden wurde".
Entweder ich habe einen Fehler bei der Deklarierung der Funktionen gemacht oder es liegt doch an der Abfrage..

Danke schonmal

Offline

#4 07.05.2018 20:14:05

TimeMen
Mitglied

Re: Bash Parameter, Syntaxfehler bei ";;"

Oh, hab den eigentlichen Fehler gefunden.
Die Funktionen müssen natürlich über der while-Condition stehen, sonst wird das mit dem Aufruf nichts...

Danke trotzdem smile
Und sorry

Offline

Schnellantwort auf dieses Thema

Schreibe deinen Beitrag und versende ihn
Deine Antwort

Fußzeile des Forums