在bash脚本中,我如何实现以下目标:
让我们假设我们有一个关联数组,如下所示:
servers = (db-test-1=64, db-test-2=128, db-test-3=32)
我希望能够读取服务器的名称,以及代表服务器RAM大小的服务器的值。
因此,例如,当我遍历上面所谓的关联数组时(我知道上面的语法不正确,但你明白了),我想将服务器名称存储在一个名为server_name的变量中,与服务器关联的RAM大小称为mem_size变量。因此,当我回显时,for循环的第一次迭代应产生以下内容:
for i in "${containers[@]}"
do
\\some code here to get server names and memory size from the array
echo "Server Name is" $server_name
echo "Server Memory size is" $mem_size
done
结果应该是:
Server Name is db-test-1
Server Memory Size is 64
答案 0 :(得分:3)
声明一个关联数组,其服务器名称为键,RAM大小为值:
declare -A servers=([db-test-1]=64 [db-test-2]=128 [db-test-3]=32)
然后将其用作:
for s in "${!servers[@]}"; do
echo "Server Name: $s => Memory Size: ${servers[$s]}"
done
Server Name: db-test-1 => Memory Size: 64
Server Name: db-test-2 => Memory Size: 128
Server Name: db-test-3 => Memory Size: 32