
Ich habe folgendes Skript:
names=($(python3 script.py -p "$GIT_PREVIOUS_COMMIT" -c "$GIT_COMMIT" | tr -d '[],'))
Es funktioniert auf einer Centos 6-Maschine mit Bash 4.1.2(2), aber beim Versuch der Ausführung unter Ubuntu erhalte ich:
bashfile.sh: 1: bashfile.sh: Syntax error: "(" unexpected
Antwort1
Dieses Skript funktioniert unter Bash 4.3.48. Das Problem ist, dass Sie es nicht mit Bash ausführen. Es fehlt einsiebangZeile oben.
#!/bin/bash
names=($(python3 script.py -p "$GIT_PREVIOUS_COMMIT" -c "$GIT_COMMIT" | tr -d '[],'))
…
Ohne eine Shebang-Zeile wird das Skript von der Standard-SH-Implementierung ausgeführt. Unter Ubuntu ist das nicht Bash, sondern Dash. Dash unterstützt keine Arrays.