Was ist los mit meinem Bash-Array?

7

Kann mir jemand sagen, warum dieses Bash-Skript funktioniert, wenn ich es ausschneide und in das Terminal einfüge, aber "server_prep.sh: 7: Syntax error:" ("unerwartet" beim Start mit $ sudo sh server_prep.sh?

%Vor%

Vielen Dank im Voraus!

    
ChrisInCambo 13.09.2009, 19:16
quelle

2 Antworten

19

Bist du auf Ubuntu?

Dann sollten Sie die Zeile #!- oben ändern, um #!/bin/bash zu lesen, da / bin / sh eine sehr begrenzte Shell ist.

Dies würde erklären, warum es im Terminal funktioniert (wo die Shell bash ist), aber nicht als Shell-Skript (das von / bin / sh ausgeführt wird).

Sie haben dies vor einigen Releases aus Performance-Gründen geändert - die meisten Leute brauchen keine volle Bash-Funktionalität für Shell-Skripte, und diese begrenzte Shell ist beim Start viel schneller.

Bearbeiten: Ich habe gerade bemerkt, dass Sie nicht einmal ein Array verwenden müssen, da Sie es trotzdem in eine force-getrennte Zeichenfolge in der for-Schleife konvertieren. Entfernen Sie einfach die Klammern in der Zuweisung und setzen Sie stattdessen Anführungszeichen (und entfernen Sie auch die Leerzeichen um das Gleichheitszeichen, wie Hacker vorgeschlagen)

    
Isak Savo 13.09.2009, 19:31
quelle
7

Versuchen Sie

%Vor%

stattdessen (beachten Sie das Fehlen von Leerzeichen um '=').

    
Michael Krelin - hacker 13.09.2009 19:30
quelle

Tags und Links