forループと追加の配列リスト

forループと追加の配列リスト

私はBashスクリプトに初めてアクセスし、現在の解決策を知らないforループ、配列、および変数の割り当て/置換に関する小さな問題に直面しています。なぜなら新しい、私はそれを見つける方法がわからない。誰でもできることですが、これは宿題やそうではないことを強調します。ちょうど後で処理するために多くのデータを再構成すると、何とかなりそうです。賢い同時にBashを学びなさい。

背景:フォルダ1、フォルダ2、フォルダ3という3つのサブディレクトリを含むディレクトリがあります。各サブディレクトリに一つdata.txt ファイル。各 data.txt ファイルには、3 つの列と固定数の行があります。

ターゲット:サブディレクトリを繰り返して、次のことを行うBashスクリプトを私のホームディレクトリから起動したいと思います。

  1. 入り、data.txtにアクセスします。
  2. 各列を対応する配列に読み込みますarr1arr2arr3これらの列は、次のサブディレクトリに入ると消去またはリセットされます。)
  3. , , ...,arr2[0]で読みます。のデータは同様の構造に従います。過去の繰り返しのデータを保持し、目的の出力配列を形成します。新しいディレクトリを検索するたびに、データがそのディレクトリに追加されます。earr1arr2[1]earr2arr2[j-1]earr$jarr3earr$j

これは複雑すぎるようですが、これが私が扱うべきデータ構造です。ほとんどの場合、私は効果的な解決策を見つけました(もちろん最善の解決策ではないかもしれません)。

質問:何らかの理由で識別できないか、earr$j+=(${arr2[j-1]})ループのように追加しようとするたびにすべての種類のエラーが発生します(そしてさまざまなバリエーションを試しました)j。私に問題を引き起こす作品は次のとおりです。誰もが問題を指摘し、可能であれば解決策の実際のケースを提供していただきありがとうございます。

問題のある for ループ:

for j in $(seq 1 $number_of_lists); do echo "(${arr2[j-1]})"; earr$j+=(${arr2[j-1]}); echo "(${arr3[j-1]})"; done

特に私はearr$j+=(${arr2[j-1]})この部分が悩みです。これは私のエラー出力です。

./next.sh: line 33: syntax error near unexpected token "${arr2[j-1]}'' そして./next.sh: line 33: earr$j+=('${arr2[j-1]}')

どんなアドバイスもよろしくお願いします。

ベストアンサー1

おすすめ記事