En BASH no se pone espacio luego del = al asignar un valor a una variable, no hace lo que se supone que haga.
Al poner el espacio, en vez de
estás haciendo esto:
Que es una forma normal de ejecutar
comando forzando a que, durante su ejecución, VARIABLE sea "valor" en vez de algún otro valor que ya tenga en el entorno, por ejemplo:
Código:
# A="a"
# miprograma <<< si necesita interactuar con el valor de A, recibirá "a"
# A="b" miprograma <<< si necesita interactuar con el valor de A, recibirá "b"
# <<< en este punto, A vuelve a valer "a", no se modifica el valor original
En este caso particular, el valor es vacío, y resulta
donde
comando se forma como el resultado de la sustitución, y por eso intenta ejecutar data1.
Saludos.