シェルスクリプトでファイルにかかれているKey:Value形式の行を読み込んで連想配列を作りたいです。
以下のようなリストファイルがあるとして
$ cat list.txt [111]="aaa" [222]="bbb" [333]="ccc"
リストファイルをもとにITEMへ代入しようと思いました。
shell
1# test.sh 2#!/bin/bash 3declare -A ITEM 4ITEM=(`cat list.txt`)
しかし、実行すると下記のようなメッセージが出力されてしまいます。これはおそらく[111]="aaa"
自体がvalueとして扱われている状態で、添字(=Key)がないですよ。ということだと思います。
$ ./test.sh a.sh: 行 3: ITEM: [111]="aaa": 連想配列を設定するときには添字をつけなければいけません a.sh: 行 3: ITEM: [222]="bbb": 連想配列を設定するときには添字をつけなければいけません a.sh: 行 3: ITEM: [333]="ccc": 連想配列を設定するときには添字をつけなければいけません
本当は下記のようにITEMへ引数を代入したいのですが、標準出力をそのままITEMに代入してもうまく扱ってくれないのです。
ITEM=([111]="aaa" [222]="bbb" [333]="ccc")
このように用意されたリストファイルから読み込んだものを連想配列の変数に入れるにはどのようにすればよいでしょうか。
よろしくお願い致します。
回答3件
あなたの回答
tips
プレビュー