1
배열의 값을 업데이트하는 while 루프를 빌드하려고하는데 명령을 찾을 수없는 오류가 계속 발생합니다.단일 라인 while 루프 업데이트 배열
는i=1
bool=true
declare -a LFT
declare -a RGT
while read -r line; do
${LFT[$i]}=${line:0:1}; ${RGT[$i]}=$(wc -l < temp$i.txt);
if [ ${LFT[$i]} -ne ${RGT[$i]} ]; then
$bool=false;
fi;
((i=i+1));
done<output2.txt
내가 읽는 오전 파일은 각 행에 하나의 숫자를 포함, 나는 각 항목은 자리 인 상태 배열 LFT를 채우려. 배열 RGT는 temp * .txt로 표시된 파일의 줄 수로 채워야합니다. 그리고이 두 배열의 각 항목이 같은지 테스트하려고합니다.
그러나 오류가 계속 발생합니다. command = # not found, 여기서 #는 파일의 줄에있는 숫자입니다. 배열에 값을 잘못 할당하고 있습니까? 또한 오류가 발생합니다. command true = false not found. 나는 이것이 부울에 값을 할당하는 것과 관련이 있다고 가정하고있다.
${LFT[$i]}=${line:0:1}; ${RGT[$i]}=$(wc -l < temp$i.txt);
변경 그것에 : 문제는이 라인에 감사
와우, 그렇게 간단한 수정이었습니다. 감사합니다. –
문제가있는 곳을 찾아내는 디버깅 방법이 있습니까? 아니면 경험을 통해 알고 계십니까? –
이러한 것들 중 일부는 연습과 함께 제공됩니다. 그러나 http://www.shellcheck.net/을 통해 코드를 전달할 수 있습니다. 훌륭한 도구입니다. 그리고 SO는 배쉬에 관해 배울 수있는 훌륭한 장소입니다. – codeforester