Los espacios en los corchetes.
"[" es lo mismo que "test" para bash, es decir es como otro comando mas...por lo que necesita espacio despues de "["
Y necesita que su ultimo argumento sea "]", por lo que necesita espacio antes de este.
if [ "$variable" == "SI" ]; then
En efecto, eso era el error. Por cierto lo de bash si está bien en el script cuando lo pasé aquí al foro me lo comí
De cualquier forma, tengo ahora otro problema. Resulta que ejecuto el script y a la hora de leer la entrada de datos, escribo SI para probar que sirve el echo "Funciona el SI" pero ejecuta el echo del else, no importa si pongo SI, Si, si, sI igual me toma como falsa la comparación de $variable con SI y me tira el echo del else. ¿Cómo corrijo?