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

関連情報