zsh: 직접 배열 할당에 대한 잘못된 아래 첨자: 0

zsh: 직접 배열 할당에 대한 잘못된 아래 첨자: 0

아래에 다음 bash 스크립트가 있습니다. 내 목표는 디렉터리의 여러 파일을 반복하는 것입니다. 파일 이름은 다음과 같습니다.배치_1, 배치_2, 배치_3, 배치_4등, 7개 배치를 초과할 수 없습니다.

아래에 다음 스크립트가 있습니다.

files=( $(echo 1) )
declare -p files
declare -a files=([0]="batch_")
for data in ${files[@]}
do
  cat ${data} | cut -d , -f2,3 | grep -v "IP" > data_ip_${data}
done

그러나 이 명령을 실행하면 zsh 오류가 발생합니다.직접 배열 할당에 잘못된 아래 첨자가 있습니다: 0

내 스크립트의 원인이 정확히 무엇인지 아는 사람이 있습니까? 아니면 가능한 해결책? 어떤 제안이라도 도움이 될 수 있습니다.

답변1

bash이것을 실행하는 데 사용하고 있습니까 zsh? bash를 사용하여 태그를 지정했지만 질문에 zsh 오류가 언급되어 있습니다.

  • ksh와 마찬가지로 bash배열은 0부터 시작합니다.
  • zsh배열은 1부터 시작합니다( KSH_ARRAYS변수를 설정하지 않는 한). 보기 man zshparam및 검색Array Subscripts

관련 정보