递增变量编号并分配新值

时间:2018-06-27 14:47:18

标签: linux shell variables

我正在尝试将列表中的值分配给一组变量。变量数从1开始,并根据列表中的值数不断增加。 我做了一个快速的cluster = LocalCluster(processes=False) 循环,但是出现错误。

for

但是我收到这样的错误:

list="010 110 004"
num=0
for node in `echo $list`
do
    ((num+=1))
    node_$num="my_host-$node.test.edu.com"
    echo $node_$num
done

如何将列表中的值分配给越来越多的变量?

1 个答案:

答案 0 :(得分:0)

您应该在bash中使用它:

list=(010 110 004)
num=0

for node in "${list[@]}"; do
    ((num+=1))
    var="node_$num"

    # use declare to create and instanitate var=value
    declare "$var"="my_host-$node.test.edu.com"

    # examine value o f$var
    declare -p "$var"
    # or use this echo to print just value
    # echo "${!var}"
done

declare -- node_1="my_host-010.test.edu.com"
declare -- node_2="my_host-110.test.edu.com"
declare -- node_3="my_host-004.test.edu.com"

还请注意使用shell数组来安全迭代有限项列表。