Wahrscheinlich mag es das Leerzeichen nach dem Gleichheitszeichen nicht.
Einige andere Ideen:
-
Stellen Sie sicher, dass Sie tatsächlich bash verwenden, um Ihr Skript auszuführen, und nicht sh/dash.
-
Sie können eine Variable mit
declare -a varname
explizit als Array deklarieren
#!/bin/bash
myarray[0]=hello
myarray[1]=world
echo "${myarray[0]}"
echo "${myarray[1]}"
speichern Sie das unter helloworld.bash
und chmod +x
die Datei.
Ausführen mit./helloword.bash
Versuchen Sie, das Leerzeichen zu entfernen:
candidate[1]=0
candidate[2]=0
usw. Ich bin selbst kein Experte auf diesem Gebiet, aber ich denke, bash muss den gesamten Zuweisungsausdruck als ein Wort erkennen, also dürfen Sie keine Leerzeichen darin haben.