Inesperado "(" - Shell script funciona no CentOS com bash, mas não no Ubuntu

Inesperado "(" - Shell script funciona no CentOS com bash, mas não no Ubuntu

Eu tenho o seguinte script:

names=($(python3 script.py -p "$GIT_PREVIOUS_COMMIT" -c "$GIT_COMMIT" | tr -d '[],'))

Funciona em uma máquina Centos 6 com bash 4.1.2(2), mas ao tentar executar no Ubuntu estou recebendo:

bashfile.sh: 1: bashfile.sh: Syntax error: "(" unexpected

Responder1

Este script funciona no bash 4.3.48. O problema é que você não está executando com o bash. Está faltando umShebanglinha no topo.

#!/bin/bash
names=($(python3 script.py -p "$GIT_PREVIOUS_COMMIT" -c "$GIT_COMMIT" | tr -d '[],'))

Sem uma linha shebang, o script é executado pela implementação sh padrão. No Ubuntu, isso não é bash, mas sim dash. Dash não oferece suporte a matrizes.

informação relacionada