Warum geht dieser Skript nicht?

2 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Das Skript hat keinen Shebang, aber das ist ja erst mal kein Beinbruch.

Die Syntax der while-Schleife ist falsch, und anders als bei den meisten anderen Programmiersprachen sind Leerzeichen an viel mehr Stellen entweder zwingend, oder verboten.

So sieht die korrekte Schleife aus:

while [ $i -gt 0 ]; do
# ...
done

Vor und nach den eckigen Klammern MUSS sich ein Leerzeichen befinden, es sei denn direkt danach folgt ein Semikolon, NUR dann ist es optional.

Außerdem darf keine Lücke vor und nach dem Gleicheitszeichen bei einer Zuweisung stehen.

Das gleiche Problem bei der Klammerung der if-Bedingungen.

Alles in allem enthält das Skript in fast jeder Zeile mehrere Fehler und es würde den Rahmen sprengen, hier alles rauszupicken.

Du mischst hier viele Dinge, die nicht zusammen gehören. Und was hat das ganze mit der Power-Shell zu tun? Die Syntax dafür sieht nochmal eine ganze Ecke anders aus und dürfte auch nur unter Windows laufen! (geht zwar auch unter Linux, aber das ist mir in der Realität noch nie unter gekommen) :)

Normalerweise schreibt man so ein Skript Schritt für Schritt und testet zwischendurch. Aber du scheinst alles auf einen Schlag geschrieben zu haben, ohne ein einziges mal getestet zu haben. So kann das leider nichts werden. Wie gesagt: Kaum eine einzige Zeile ist fehlerfrei.

Am besten, du schmeißt den ganzen Haufen Müll weg, und fängst nochmal neu von vorne an; dann aber ordentlich. :)

Viel Erfolg! :)
EVU1999 
Fragesteller
 23.10.2016, 19:56

Das mit Powershell hab ich genomman da ich unter Pastebin das meine Meinung nach den am nähsten Syntax.

Dennoch vielen dank!

0

Hallo

Warum geht dieser Skript nicht?

Führe es doch mal so aus:

bash -x

um zu sehen  was es wann tut.

Bei mir sieht das essentielle dann so aus¹:

irgendwas.sh: Zeile 32: i: Kommando nicht gefunden.
irgendwas.sh: Zeile 38: Syntaxfehler beim unerwarteten Wort `else'
irgendwas.sh: Zeile 38: ` else'

Linuxhase

-------------------------------------------------------------------------------------------------

¹ Die Zeilennummern sind nicht mit Deinem Script identisch

Woher ich das weiß:eigene Erfahrung – Ich benutze seit 2007 Linux und habe LPIC101 und LPIC102