Inesperado "(" - El script de Shell funciona en CentOS con bash pero no en Ubuntu

Inesperado "(" - El script de Shell funciona en CentOS con bash pero no en Ubuntu

Tengo el siguiente script:

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

Funciona en una máquina Centos 6 con bash 4.1.2(2), pero cuando intento ejecutarlo en Ubuntu obtengo:

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

Respuesta1

Este script funciona en bash 4.3.48. El problema es que no lo estás ejecutando con bash. le falta unel asuntolínea en la parte superior.

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

Sin una línea shebang, el script se ejecuta mediante la implementación sh predeterminada. En Ubuntu, eso no es bash, sino guión. Dash no admite matrices.

información relacionada