Ich habe zwei (Debian) Linux-Server. Ich erstelle ein Shell-Skript.
Auf dem ersten erstelle ich ein Array so:
#!/bin/bash
target_array=(
"/home/user/direct/filename -p123 -r"
)
Das funktioniert gut. Aber wenn ich das auf dem anderen Server laufen lasse, bekomme ich:
Syntax error: "(" unexpected
Soweit ich das beurteilen kann sind beide Server gleich. Kann jemand etwas Licht ins Dunkel bringen, warum dies nicht funktioniert?
Wenn ich es direkt in das Terminal eingebe, ist es in Ordnung?
Es scheint, dass, wenn ich es als laufen lasse
sh scriptname.sh
Ich bekomme den Fehler, aber wenn ich es als laufen lasse
./scriptname.sh
es scheint in Ordnung zu sein. Was ist der Unterschied?
sh
ist nicht bash
und so läuft es sh scriptname.sh
falsch
cat -v <script>
zu sehen, ob es falsche Zeichen gibt.