Il n'aime probablement pas l'espace après le signe égal.
Quelques autres idées :
-
Assurez-vous que vous utilisez réellement bash pour exécuter votre script, et non sh/dash.
-
Vous pouvez déclarer explicitement une variable comme un tableau en utilisant
declare -a varname
#!/bin/bash
myarray[0]=hello
myarray[1]=world
echo "${myarray[0]}"
echo "${myarray[1]}"
enregistrez-le dans helloworld.bash
et chmod +x
le fichier.
exécuter en utilisant./helloword.bash
Essayez de supprimer l'espace :
candidate[1]=0
candidate[2]=0
etc. Je ne suis pas moi-même un expert dans ce domaine, mais je pense que bash doit reconnaître l'ensemble de l'expression d'affectation comme un seul mot, vous ne pouvez donc pas y mettre d'espaces.