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 错误。

  • 就像kshbash数组从零开始。
  • zsh数组从 1 开始(除非您KSH_ARRAYS设置了变量)。查看man zshparam并搜索Array Subscripts

相关内容