Syntaxfehler: Operand bei Verwendung von Bash erwartet

Ich habe zwei Arrays, die ich einschleifen möchte. Ich konstruiere diese richtig und bevor ich in die for-Schleife gehe, wiederhole ich sie, um sicherzugehen, dass bei Arrays alles in Ordnung ist. Beim Ausführen des Skripts wird jedoch ein Fehler ausgegeben:

l<=: syntax error: operand expected (error token is "<="

Ich habe das mächtige Google konsultiert und verstanden, dass es unter dem Fehlen der zweiten Variablen leidet, aber ich habe bereits erwähnt, dass ich die Werte wiederhole und alles scheint in Ordnung zu sein. Hier ist der Ausschnitt ..

#!/bin/bash
    k=0
    #this loop is just for being sure array is loaded
    while [[ $k -le ${#hitEnd[@]} ]] 
      do
      echo "hitEnd is: ${hitEnd[k]} and hitStart is: ${hitStart[k]}"
      # here outputs the values correct 
      k=$((k+1))
    done
    k=0
    for ((l=${hitStart[k]};l<=${hitEnd[k]};l++)) ; do //this is error line..
        let array[l]++      
        k=$((k+1))
done

Die Variablen in der for-Schleife werden korrekt wiedergegeben, aber die for-Schleife funktioniert nicht. Wo irre ich mich?

#

wie gniourf_gniourf antwortete:

"... Irgendwann erreicht k den Wert $ {# hitEnd [@]}, und genau dann ist hitEnd [k] nicht definiert und wird zu einer leeren Zeichenfolge erweitert! Bang!"

Bedeutungsfehlerausgabe wird nicht am Anfang der Schleife angezeigt, aber wenn k einen größeren Wert als die Indizes des Arrays hat, wird auf einen Index verwiesen, den das Array nicht enthält ...

Antworten auf die Frage(2)

Ihre Antwort auf die Frage