Синтаксическая ошибка: ожидается операнд при использовании Bash

У меня есть два массива, которые я хочу зациклить. Я строю их правильно и перед тем, как перейти к циклу for, я повторяю их, чтобы убедиться, что с массивами все в порядке. Но когда я запускаю скрипт, он выдает ошибку:

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

Я проконсультировался с могущественным Google, и я понял, что страдает от отсутствия второй переменной, но я упоминал ранее, что я повторяю значения, и все, кажется, в порядке. Вот фрагмент

#!/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

Переменные в цикле for выводятся корректно, но цикл for не работает .. где я ошибаюсь?

#

как ответил gniourf_gniourf:

"... В какой-то момент k достигнет значения $ {# hitEnd [@]}, и это именно тогда, когда hitEnd [k] не определен и разворачивается в пустую строку! Bang!"

то есть вывод ошибок отображается не в начале цикла, а когда k имеет большее значение, чем индексы массива, указывая на индекс, который массив не включает ...

Ответы на вопрос(2)

Ваш ответ на вопрос