gpt4 book ai didi

bash - Bash中数组的双重插值

转载 作者:行者123 更新时间:2023-12-04 06:09:55 24 4
gpt4 key购买 nike

我正在尝试制作一个脚本,以便我可以轻松地向其中添加主机类型,而无需更改代码本身。每种类型的主机都有一组特定的 ID 和与之关联的模板。这是我导出的鳕鱼:

CLASS="memcache"
memcache_template=( 42 45 )
CLASS_template=${CLASS}_template
template=$( eval echo $`echo $CLASS_template` )

for i in ${template[@]}; do
echo $i
done

我得到的输出只是“42”。我需要它输出 42 和 45。

最佳答案

这是一种方法:

CLASS="memcache"
memcache_template=(42 45)

CLASS_template=${CLASS}_template[@]

for i in ${!CLASS_template}; do
echo $i
done

参见 info "(bash)Shell Parameter Expansion" 中对变量间接的讨论.请注意,您不能使用 ${!CLASS_template[@]}因为那有特殊的意义。数组下标必须在间接之前完成。

关于bash - Bash中数组的双重插值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7897280/

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