これは私の$a
出力です:
[root@node1 ~]# echo "${a}"
/dev/vdc1 /gfs1
/dev/vdd1 /elastic
mfsmount /usr/local/flytxt
fsmounts
これらを、最初の列をキーとして、2 番目の列を値として連想配列に格納する必要があります。
これはそのための私のコードです:
declare -A fsmounts
echo "$a" | while read i ; do key=$(echo "$i" | awk '{print $1}'); value=$(echo "$i" | awk '{print $2}');fsmounts[$key]=$value; done;
しかし、ループの外で印刷しようとすると
[root@node1 ~]# echo ${fsmounts[/dev/vdb1]}
ブランクは出力です。連想配列 fsmounts は実際には値を格納していないと思います。私を助けてください。
fsmounts[$key]
しかし、実際にはループ内でエコーすることができます。これを参照してください:
echo "$a" | while read i ; do key=$(echo "$i" | awk '{print $1}'); value=$(echo "$i" | awk '{print $2}');fsmounts[$key]=$value; echo ${fsmounts[$key]}; done;
/gfs1
/elastic
/usr/local/flytxt