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!
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)
Versuchen Sie
%Vor%stattdessen (beachten Sie das Fehlen von Leerzeichen um '=').
Tags und Links bash