在bash中动态分配变量

时间:2014-08-12 20:35:18

标签: bash variables dynamic

我在bash脚本中遇到了问题。 我需要根据文件夹中的文件分配新变量,并根据脚本获取的参数数量(无论是否是脚本)为它们分配一个数字。 我试图写一个这样的脚本:

n_${array[*]}=`arg_count ${array[*]}`

而arg_count会检查脚本获取的参数数量。 为了进一步使用,如果需要具有不同参数的函数,我将改变这些变量。

提前致谢!

1 个答案:

答案 0 :(得分:3)

通常,您可以使用declare内置来完成此操作,因为它是一个命令,其参数是一个类似于赋值的字符串。

declare "n_${array[*]}=$(arg_count ${array[*]})"

但请注意,除非您正确设置IFS且数组内容合适,否则${array[*]}的扩展不会成为构成有效标识符一部分的字符串。< / p>

您可能想要使用关联数组

declare -A n
n[${array[*]}]=$(arg_count ${array[*]})

或用适当支持数据结构的编程语言编写代码。