bash将变量赋值给数组元素

bash将变量赋值给数组元素,bash,shell,Bash,Shell,我在bash中很难让它工作,我有以下数组 server-farm=("10.0.10.1" 10.0.10.2") 我想循环这个数组,并为每个元素分配uniq变量 期望的结果 srv1 = 10.0.10.1 srv2 = 10.0.10.2 这可能吗 这是我迄今为止尝试过的方法,但无法使其发挥作用 for i in "${server_farm[@]}" do echo $i done 谢谢您可以使用此脚本: server_farm=("10.

我在bash中很难让它工作,我有以下数组

server-farm=("10.0.10.1" 10.0.10.2")
我想循环这个数组,并为每个元素分配uniq变量

期望的结果

srv1 = 10.0.10.1 
srv2 = 10.0.10.2 
这可能吗

这是我迄今为止尝试过的方法,但无法使其发挥作用

  for i in "${server_farm[@]}"
    do
            echo $i
  done

谢谢

您可以使用此脚本:

server_farm=("10.0.10.1" "10.0.10.2")

for ((i=0, j=1; i< ${#server_farm[@]}; i++, j++)); do
   declare "srv$j"="${server_farm[$i]}"
done

为什么要将每个值指定给不同的变量?没有必要那样做。直接使用数组
${server\u farm[0]}
是第一个条目,
${server\u farm[1]}
是第二个条目,以此类推。
bash
变量的名称中不能有连字符。因此,您的数组分配一开始就有点可疑……非常感谢,#before server_farm#的含义是什么?很想知道,谢谢
${#server_farm[@]}
提供了数组元素的计数
echo "$srv1"
10.0.10.1
echo "$srv2"
10.0.10.2