bash脚本变量数组名

bash脚本变量数组名,bash,shell,Bash,Shell,你好,我想问一个重复的问题 我在bash脚本中定义了四个服务器,如下代码所示。 对于每台服务器,我希望维护在其上启动的进程的ID。 为了测试,我想用10-30-40初始化每个数组。 看看我是否能按预期访问这些元素。但是,我无法访问元素。 有人能告诉我我到底做错了什么吗 #!/bin/bash SERVER_LIST=("server1" "server2" "server3") for server in ${SERVER_LIST[

你好,我想问一个重复的问题

我在bash脚本中定义了四个服务器,如下代码所示。 对于每台服务器,我希望维护在其上启动的进程的ID。 为了测试,我想用10-30-40初始化每个数组。 看看我是否能按预期访问这些元素。但是,我无法访问元素。 有人能告诉我我到底做错了什么吗

#!/bin/bash
SERVER_LIST=("server1" "server2" "server3")

for server in ${SERVER_LIST[@]} ; do
    echo $server
    arrayName=$server"process"
    echo $arrayName
    set -a "$arrayName=(10 20 30 40)"
done

current_sever=${SERVER_LIST[0]}
arrayName=$current_server"process"
# The attempt below is failing.
eval "echo Server ${current_server} \${$arrayName[*]}"
echo $(eval echo \${arrayName[*]})Server server1
服务器1进程

它给我的输出如下-

服务器服务器1

服务器1进程

有人能帮忙吗。 另外,您能告诉我如何将新元素附加到数组中吗? 我尝试了以下方法,但不起作用-

sleep 10 &
arrayName=$current_server"process"
eval "\${$arrayName[*]}+=$!"
尝试替换第8行:

set -a "$arrayName=(10 20 30 40)"
与:

请参阅和。可能的副本
eval "$arrayName=(10 20 30 40)"