我下面有以下 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
数组从零开始。 zsh
数组从 1 开始(除非您KSH_ARRAYS
设置了变量)。查看man zshparam
并搜索Array Subscripts