以下に以下の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