0
変数free_memlistのインデックス付き配列を作成しようとしていますが、最初のものだけを印刷しています。しかし、ループの内部では問題ありません。なぜ2番目の要素が配列にないのですか?
コード:
#!/usr/bin/bash
eval array_host=($(xe host-list params=uuid | cut -c 17-))
#Loop through each xen server node
for i in ${array_host[@]};
do
free_mem1=$(xe host-data-source-query data-source=memory_free_kib uuid=$i)
free_mem=(${free_mem1/\.*})
done
host_memlist=($free_mem)
echo ${array_host[0]}
echo ${array_host[1]}
echo ${free_mem[0]}
echo ${free_mem[1]}
出力:
63c2fe78-48c2-4c48-b7dd-f68f8639a7af
6264dd23-76c9-4905-894f-a5fb212aa8dc
2921184
予想される出力:コマンドの
63c2fe78-48c2-4c48-b7dd-f68f8639a7af
6264dd23-76c9-4905-894f-a5fb212aa8dc
2921184
2721184
出力ます。xe host-リストのparams = UUID |以下のように-c 17-カット:
63c2fe78-48c2-4c48-b7dd-f68f8639a7af
6264dd23-76c9-4905-894f-a5fb212aa8dc
コードが悪いのか分かりません。
'xe host-list params = uuid |の出力を追加します。 cut -c 17-'をあなたの質問にします。 – Cyrus
@Cyrus、コマンドの出力を確認してください。ありがとう。 – rmstmg
なぜ 'eval'を使うのですか? 'array_host'はそれを呼び出さずに塗りつぶされます。 –