gpt4 book ai didi

linux - 增加变量号并分配新值

转载 作者:太空宇宙 更新时间:2023-11-04 12:04:57 26 4
gpt4 key购买 nike

我正在尝试将列表中的值分配给一组变量。变量编号从 1 开始,并根据列表中值的数量不断增加。我做了一个快速的 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

但是我得到这样的错误:

bash: node_1=my_host-010.test.edu.com: command not found
1
bash: node_2=my_host-110.test.edu.com: command not found
2
bash: node_3=my_host-004.test.edu.com: command not found
3

如何将列表中的值分配给一组递增的变量?

最佳答案

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 数组对有限项列表进行安全迭代。

关于linux - 增加变量号并分配新值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51065754/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com