0
我想創建變量free_memlist的索引數組,但它只是打印第一個。但內部循環,它是好的。爲什麼我沒有獲得數組中的第二個元素?
代碼:
#!/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主機列表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'將被填充而不調用它。 –