bash 中的哈希集或关联数组

The*_*gia 2 bash shell hashset

在 bash 脚本中,我如何实现以下目标:

假设我们有一个关联数组,如下所示:

servers = (db-test-1=64, db-test-2=128, db-test-3=32)
Run Code Online (Sandbox Code Playgroud)

我希望能够读取服务器的名称以及代表服务器 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
Run Code Online (Sandbox Code Playgroud)

结果应该是:

Server Name is db-test-1
Server Memory Size is 64
Run Code Online (Sandbox Code Playgroud)

anu*_*ava 5

声明一个关联数组,其中您的服务器名称作为键,RAM 大小作为值:

declare -A servers=([db-test-1]=64 [db-test-2]=128 [db-test-3]=32)
Run Code Online (Sandbox Code Playgroud)

然后将其用作:

for s in "${!servers[@]}"; do
   echo "Server Name: $s => Memory Size: ${servers[$s]}"
done
Run Code Online (Sandbox Code Playgroud)
declare -A servers=([db-test-1]=64 [db-test-2]=128 [db-test-3]=32)
Run Code Online (Sandbox Code Playgroud)