루프를 넣을 두 개의 배열이 있습니다. 루프를 만들기 전에 적절하게 구성합니다. 배열에 대해 모든 내용이 정상인지 확인합니다. 하지만 스크립트를 실행하면 오류가 출력 :구문 오류 : Bash를 사용할 때 예상되는 피연산자
l<=: syntax error: operand expected (error token is "<="
나는 거대한 구글을 상담하고 나는 그것이 두 번째 변수의 부족으로 고통을 이해하지만, 내가 값을 에코 할 앞서 언급 한 모든 것을 보인다을 괜찮을거야. 여기에 스 니펫이 있습니다.
#!/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 루프의 변수는 정확하게 에코되지만 루프는 작동하지 않습니다. 어디에서 잘못 되었습니까?
#gniourf_gniourf 대답 같이 오류 출력을 의미
"... At some point, k will reach the value ${#hitEnd[@]}, and this is exactly when hitEnd[k] is not defined and expands to an empty string! Bang!"
루프의 시작 부분에 있지 표시되지만, k는 인덱스를 가리키고, 배열의 인덱스보다 더 큰 값을 가질 때 그 배열은 포함하지 않는다 ...
덕분에 gniourf_gniourf, 시도 및 비트에 게시 할 예정입니다 .. – teutara
은 아직도 명확하게 이해하지 않는다 왜 질문에 언급 된 상황이 효과가 없지만 당신의 노력에 감사드립니다. – teutara
나는 그것을 이해할 것이라고 생각했습니다! 변수'k'가 항상 증가하는 것을 관찰하고'for' 루프 (즉,'<= hitEnd [k]'부분)의 테스트 부분이 각 패스에서 평가된다는 것을 기억하십시오! 물론 –