다음 스크립트가 있습니다.
names=($(python3 script.py -p "$GIT_PREVIOUS_COMMIT" -c "$GIT_COMMIT" | tr -d '[],'))
bash 4.1.2(2)가 설치된 Centos 6 시스템에서 작동하지만 Ubuntu에서 실행하려고 하면 다음과 같은 결과가 나타납니다.
bashfile.sh: 1: bashfile.sh: Syntax error: "(" unexpected
답변1
이 스크립트는 bash 4.3.48에서 작동합니다. 문제는 bash로 실행하지 않는다는 것입니다. 하나가 없어셰르본줄이 맨 위에 있습니다.
#!/bin/bash
names=($(python3 script.py -p "$GIT_PREVIOUS_COMMIT" -c "$GIT_COMMIT" | tr -d '[],'))
…
shebang 줄이 없으면 스크립트는 기본 sh 구현에 의해 실행됩니다. 우분투에서는 bash가 아니라 dash입니다. 대시는 배열을 지원하지 않습니다.