Probablemente no le guste el espacio después del signo igual.
Algunas otras ideas:
-
Asegúrese de estar usando bash para ejecutar su secuencia de comandos y no sh/dash.
-
Puede declarar explícitamente que una variable sea una matriz usando
declare -a varname
#!/bin/bash
myarray[0]=hello
myarray[1]=world
echo "${myarray[0]}"
echo "${myarray[1]}"
guarda eso en helloworld.bash
y chmod +x
el archivo.
ejecutar usando./helloword.bash
Intenta eliminar el espacio:
candidate[1]=0
candidate[2]=0
y así. Yo mismo no soy un experto en esta área, pero creo que bash necesita reconocer toda la expresión de asignación como una sola palabra, por lo que no puede tener espacios en ella.