设置动态创建的 bash 变量

set a dynamically created bash variable

早上好, 我需要动态更改变量的名称。我做了一些测试。我的测试脚本是这样的:

i=5
range5min=777
varname="range${i}min"
echo ${!varname}
#$`echo $varname`=555
$varname=555
echo $range5min

我可以通过以下方式访问其内容:

echo $ {! Varname}

但是我不能给一个动态创建的变量赋值,也就是说,我不能用equal来赋值。 我尝试了这两种方式:

$ `echo $ varname` = 555
$ varname = 555

我想做的是在 for 中创建新变量,具体取决于 for 期望的循环数。

你可以使用 printf:

printf -v "$varname" '%s' "555"

不过请注意,实际上并不推荐这种类型的编程,因为它会使代码难以阅读和理解。

数组或关联数组可能更合适。