아래에 다음 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